1

我正在使用类似下面的代码将对象的 NSDictionary 保存到设备。有没有办法打开这个档案,深入到它包含的字典项目,并在理想情况下编辑数据?我的猜测是不,不可靠,因为保存时完成的优化使存档难以解释......至少在使用Property List Editor之类的东西打开时看起来是这样。例如,如果我的一些对象共享一个类似的 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;
}
4

1 回答 1

1

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

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

你为什么要这样做?您是否尝试像 Core Data + sqlite 那样进行增量编辑?普通的旧 sqlite 本身会解决您的问题吗?

于 2009-12-09T21:21:39.250 回答