File io 如何将数据附加到NSKeyedArchive?

File io 如何将数据附加到NSKeyedArchive?,file-io,nsdata,nskeyedarchiver,File Io,Nsdata,Nskeyedarchiver,我正在读这样一个文件: NSData *data = [NSData dataWithContentsOfFile:myPath]; NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; NSData *imgData = [unarchiver decodeObjectForKey:@"myimage"]; if (imgData != nil) { se

我正在读这样一个文件:

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”键的图像数据,如果它不存在的话


怎么做?

似乎没有办法“附加”到NSKeyedArchive,所以我只是用添加的额外数据重新创建了它,并写入了原始文件。

似乎没有办法“附加”到NSKeyedArchive,所以我只是用添加的额外数据重新创建了它,并写入了原始文件。

是的。没有提供用于附加的方法。如果数据足够大,可能值得使用一个好的ol'unix文件写入/fwrite,或者使用DB.Yep。没有提供用于附加的方法。如果数据足够大,可能值得使用一个好的ol'unix文件写入/fwrite,或者使用DB。除了添加一些注释来解释代码外,还有一个小细节,它没有解决OP提出的问题。另外,添加一些注释来解释代码也是一个好形式,有一个小细节,它没有解决OP提出的问题。
 NSString *archivePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"any name"];
[NSKeyedArchiver archiveRootObject:your object(example:singletonDataObjectref) toFile:archivePath];