2013-07-12 5 views
0

나는 아카이브로 객체를 저장하기 위해 다음을 수행 오전 :아카이브 된 오브젝트 파일을 찾는 방법은 무엇입니까?

[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:self.shapeLayers] forKey:@"mySavedArray"]; 

나는 그것을 다시 할 수 있어요대로 잘 작동 알고있다. 질문 :이 파일을 찾으려면 어떻게해야합니까? 보관 파일을 .m 파일과 비교하기 위해 파일 크기를보고 싶습니다. 또한 결국 파일을 서버에 업로드해야 할 수도 있습니다. 나는 그것을 올바르게 저장하고 있는가, 아니면 다른 방향으로 가야 하는가?

+0

문서 폴더에 plist로 저장하고 iTunes 파일 공유를 사용할 수 있습니다. 나는 나중에 코드를 추가 할 것이다. – WolfLink

+0

@wolflink - pList로 저장하는 것이 효과가 있을지 모르겠다. ShapeLayers 배열이므로 pList에 특정 유형 만 저장할 수 있다고 생각 하는가? 어쨌든, 아마도 혼란스럽고, 당신이해야 할 말을 듣고 싶어 할 것입니다. 응답 해 주셔서 감사합니다. –

답변

1

표준 사용자 기본값은 "App 홈 디렉토리/Library/Prefereneces /"에 하나의 파일로 저장됩니다. 아카이브 된 데이터는 해당 파일의 일부입니다. 별도의 파일로 저장되지 않습니다. 데이터 크기를 가져 오려면 NSData의 .length 속성을 사용하십시오.

NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:self.shapeLayers]; 
NSUInteger size = [archivedData length]; 
[[NSUserDefaults standardUserDefaults] setObject: forKey:@"mySavedArray"]; 
+0

감사합니다. 별도의 파일로 보관하는 방법이 있습니까? –

+0

[NSKeyedArchiver archiveRootObject : toFile :]을 사용하십시오. 일반적으로 파일을 문서 디렉토리에 씁니다. 다른 위치에 저장하려면 다른 파일 경로를 지정하십시오. NSString * documentsDirectory = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) [0]; NSString * archiveFile = [documentsDirectory stringByAppendingPathComponent : @ "data.archive"]; [NSKeyedArchiver archiveRootObject : dict toFile : archiveFile]; –