2011-10-05 3 views
1

나는과 같이 파일을 읽고 있어요 : 존재하지 않는 경우 내가하고 싶은 무엇NSKeyedArchive에 데이터를 추가하는 방법은 무엇입니까?

NSData *data = [NSData dataWithContentsOfFile:myPath]; 

NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; 


NSData *imgData = [unarchiver decodeObjectForKey:@"myimage"]; 

if (imgData != nil) { 
    self.image = [[NSImage alloc]initWithData:imgData]; 
}else{ 
    self.image = nil; 
} 

[unarchiver finishDecoding]; 
[unarchiver release]; 

같은 파일을 "myimage을"@ 키에 대한 이미지 데이터를 추가하는 것입니다.

어떻게 가야합니까?

답변

2

NSKeyedArchive에 "추가"할 수있는 방법이 없으므로 추가 된 데이터로 원래 파일을 다시 작성하고 원본 파일 위에 씁니다.

+0

옙. 추가하는 메소드가 제공되지 않습니다. 데이터가 충분히 크다면 유닉스의 FILE write/fwrite를 사용하거나 DB를 사용하는 것이 좋습니다. – wcochran

-1
NSString *archivePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"any name"]; 
[NSKeyedArchiver archiveRootObject:your object(example:singletonDataObjectref) toFile:archivePath]; 
+0

코드를 설명하는 주석을 추가하는 것이 좋은 양식이라는 점을 제외하면 OP에서 요청한 질문에는 * 다루지 않습니다. – Marco