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];