我使用类似下面的代码来保存对象的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;
}
答案 0 :(得分:1)
真正的问题是“你应该吗?” ... 可能不是。
当然,您可以解析文件格式,但该格式是可以更改的实现细节,而且它不值得。
你为什么要这样做?您是否尝试对Core Data + sqlite进行增量编辑?只是简单的旧sqlite本身可以解决你的问题吗?