可以可靠地打开和编辑NSKeyedArchiver的存档吗?

时间:2009-12-09 20:30:49

标签: cocoa cocoa-touch nskeyedarchiver

我使用类似下面的代码来保存对象的NSDictionary到设备。有没有办法打开这个存档,深入查看它包含的词典项目,理想情况下,编辑数据?我的猜测是否定的,不可靠,因为保存时进行的优化使归档难以解释......至少在使用属性列表编辑器之类的东西打开时会出现这种情况。例如,如果我的一些对象共享一个类似的NSString,那么看起来NSString只存档一次......改变了我所期望的NSDictionary的结构。

- (BOOL)writeDataToFile {
 NSMutableData *data = [[NSMutableData alloc] init];
 NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
 [archiver encodeObject:myDictionary forKey:kDataKey];
 [archiver encodeInteger:kDataFileVersion forKey:kDataVersionKey];
 [archiver finishEncoding];
 BOOL success = [data writeToFile:[self dataFilePath] atomically:YES];
 [archiver release];
 [data release];
 return success;
}

1 个答案:

答案 0 :(得分:1)

真正的问题是“你应该吗?” ... 可能不是。

当然,您可以解析文件格式,但该格式是可以更改的实现细节,而且它不值得。

你为什么要这样做?您是否尝试对Core Data + sqlite进行增量编辑?只是简单的旧sqlite本身可以解决你的问题吗?