不知何故,下面提到的代码似乎删除了我的~/Library/Preferences/NAME.PRODUCT.plist
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:NO forKey:@"ViewFirstShown"];
[defaults synchronize];
我可以在调用这些行之前确认plist文件是否存在。但运行上述代码后,plist文件立即消失。
我认为synchronise
会立即将值写入disk
。我试着等了一会儿,但是plist不会重新出现。
我错过了什么吗?
提前致谢。
答案 0 :(得分:1)
这里没有足够的信息来回答你的问题。
“ViewFirstShown”键是执行上述代码时首选项plist中唯一的键吗?如果是,那么-setValue:forKey:
调用将删除prefs中的最后一个键,这将删除首选项plist。
另外需要注意的一点是,您使用的-[NSUserDefaults setValue:forKey:]
需要id
作为值。因为NO
是0L
而且有效nil
,所以您删除了此处的任何值。您可能希望改为使用-[NSUserDefaults setBool:forKey:]
。