0

我在我的代码中使用NSDictionary 的writeToFile属性我试图将字典更新到文档目录,如下所示,

NSDictionary *revisionDict = [NSDictionary dictionaryWithObject:currentItem.rev forKey:destPath];
NSArray *documentDirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentDirPath objectAtIndex:0];
NSString *dictPath = [documentsDir stringByAppendingPathComponent:@"Revision.dictionary"];
[revisionDict writeToFile:dictPath atomically:YES];

这里的问题是我的字典,而不是在每次迭代中被新条目更新,它被新条目覆盖。我如何更新我的字典是否有 writeToFile 的替代方法,提前感谢任何帮助。

4

2 回答 2

8

内存中的字典可以是可变的;写入磁盘的字典是一组完整信息的快照。

您不会从像这样的任何框架方法中获得“合并更新”行为。如果您有要添加或更新的现有版本,则需要将原始版本作为可变字典加载/保存在内存中,然后对其进行更改或添加,然后保存整个新版本(与-writeToFile:或其他东西)。

如果您要在循环中添加一堆条目,请先添加所有条目,然后在完成后将字典作为文件写入磁盘。

于 2012-09-14T07:40:05.370 回答
4

是的writeToFile会覆盖之前的内容,

因此,您可以将文件的先前内容读入NSMutableDictionary,然后将新内容添加到此 mutableDictionary ,然后将此 mutableDictionary(包含旧内容和新内容)写入文件路径。

于 2012-09-14T07:46:28.773 回答