我对使用plists初始化我的应用感到满意。我现在想要将app状态保存回用于初始化应用程序的plist,我发现自己陷入困境。在应用程序启动时,我将plist输入到一个不可变的NSDictionary中。我现在想通过用现有键的新值替换旧值来更新NSDictionary,并通过[NSDictionary writeToFile:atomically]写入plist。我如何解决NSDictionary的不变性?
谢谢, 道格
我按照zneak的建议,将我的设置文件输入NSMutableDictionary。工作良好。在编写plist之前,我确认新值现在替换旧值。凉。很高兴。
问题:当我这样写文件时:
if ([self.settings writeToFile:plistPath atomically:YES] == NO) {
NSLog(@"Unable to write plist");
}
方法很愉快地完成 - 条件是YES而不是NO - 但我看不到文件。文件在哪里消失了?
我不应该在目录树中看到新文件吗?
答案 0 :(得分:1)
通过调用NSMutableDictionary
将其设为-[myDict mutableCopy]
,然后使用此文件写入文件;或者只是使用[NSMutableDictionary dictionaryWithContentsOfFile:(NSString*)]
加载plist以获取一个可变实例,而不是一个不可变实例。
答案 1 :(得分:0)
使用NSMutableDictionary
(您可以使用-[NSDictionary mutableCopy]
创建它)。然后,您可以像writeToFile
一样使用NSDictionary
。