iphone - writeToFile 正在覆盖以前的数据

标签 iphone objective-c ios nsdictionary nsfilemanager

我在我的代码中使用 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 的替代方法,提前感谢任何帮助。

最佳答案

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

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

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

关于iphone - writeToFile 正在覆盖以前的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12420039/

相关文章:

iOS 转换器应用程序,度量之间的连接

iphone - iPhone (/iPad) 上的高度和宽度

iphone - 在 iOS 应用程序中从 ftp 服务器下载文件

ios - 在 iOS7 中,cell.selectedBackgroundView 没有显示

javascript - stringByEvaluatingJavaScriptFromString 问题

ios - 在多个部分重用 UITableViewCell

ios - 如何将单个 SignalProducer 绑定(bind)到多个 UI 组件?

iphone - 授予日历隐私访问问题

iphone - UISearchBar 表部分索引标题重叠

iphone - 如何通过 UISlider 更新 iPhone 上的音乐音量?