2011-10-05 40 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

是的。没有方法提供追加。如果数据足够大,可能值得使用一个好的'unix文件写入/写入 - 或使用数据库。 – wcochran

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

相当不同的是,添加一些注释来解释你的代码是一种很好的形式,它有一些小细节,它*不能解决OP提出的问题。 – Marco