我在我的代码中使用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,任何帮助提前赞赏。
答案 0 :(得分:7)
内存中的字典可以是可变的;写入磁盘的字典是一整套信息的快照。
您不会从这样的任何框架方法中获得“合并更新”行为。如果您有要添加或更新的现有版本,则需要在内存中加载/将原始版本作为可变字典,然后对其进行更改或添加,然后保存整个新内容(使用-writeToFile:
或其他内容)。
如果要在循环中添加一堆条目,请先添加所有条目,然后在完成后将字典作为文件写入磁盘。
答案 1 :(得分:4)
是 writeToFile 会覆盖以前的内容
因此,您只需将文件的先前内容读入NSMutableDictionary
,然后向此mutableDictionary添加新内容,然后将此mutableDictionary(包含旧内容和新内容)写入文件路径。