NSUserDefaults setValue:删除我的plist。发生了什么?

时间:2011-10-20 21:27:51

标签: ios cocoa-touch nsuserdefaults settings.bundle

不知何故,下面提到的代码似乎删除了我的~/Library/Preferences/NAME.PRODUCT.plist

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setValue:NO forKey:@"ViewFirstShown"];
    [defaults synchronize];

我可以在调用这些行之前确认plist文件是否存在。但运行上述代码后,plist文件立即消失。

我认为synchronise会立即将值写入disk。我试着等了一会儿,但是plist不会重新出现。

我错过了什么吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这里没有足够的信息来回答你的问题。

“ViewFirstShown”键是执行上述代码时首选项plist中唯一的键吗?如果是,那么-setValue:forKey:调用将删除prefs中的最后一个键,这将删除首选项plist。

另外需要注意的一点是,您使用的-[NSUserDefaults setValue:forKey:]需要id作为值。因为NO0L而且有效nil,所以您删除了此处的任何值。您可能希望改为使用-[NSUserDefaults setBool:forKey:]