objective-c – Xcode 5.0 NSUserdefaults在删除plist后仍然会收到存储的首选项

objective-c – Xcode 5.0 NSUserdefaults在删除plist后仍然会收到存储的首选项,第1张

概述在使用NSUserDefaults时,我有一个关于在 Xcode 5上编程osx应用程序的问题.通常,我们只使用[[NSUserDefaults standardUserDefaults] setObject:@“这是一个对象”forKey:@“Test”]记住用户首选项.之后,应用程序将在〜/ Library / Preferences / application.bundle.identifi 在使用NSUserDefaults时,我有一个关于在 Xcode 5上编程osx应用程序的问题.通常,我们只使用[[NSUserDefaults standardUserDefaults] setobject:@“这是一个对象”forKey:@“Test”]记住用户首选项.之后,应用程序将在〜/ library / Preferences / application.bundle.IDentifIEr.pList中生成一个pList文件.

问题是,在我删除pList文件后,应用程序仍然可以获得我存储的首选项.即使我试图清理项目,重新启动xcode,删除派生文件夹中的文件,也没有办法清除该pList.解决这个问题的唯一办法就是重新启动系统,所以我想有一些存储在内存中的东西.问题是如何清除这些存储的偏好? (我不认为通过在调试和测试中手动添加代码来清除偏好设置是很方便的.)而且我尝试使用Xcode 4.x的前一个版本,没有这样的问题.任何人都有兴趣可以创建一个新的可可项目,并添加如下代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];    [defaults setobject:@"This is an object." forKey:@"Test"];     NSLog(@"%@",[defaults objectForKey:@"Test"]);

在“applicationDIDFinishLaunching”下.然后去删除〜/ library / Preferences / application.bundle.IDentifIEr.pList.
之后,注释行:[defaults setobject:@“这是一个对象.” forKey:@ “测试”];
在你的代码中并再次运行应用程序.控制台仍将显示“这是一个对象”.
我的环境是小牛GM和Xcode 5.0(5a1413).

希望这不是只是发生在我身上,感谢任何帮助!

解决方法 这是一个与您正在使用的Xcode版本无关的OS X问题.苹果公司的官方网站是删除pList文件以删除首选项从未得到正式支持,而在最近的OS X版本中,由于存储首选项的方式发生变化,因此它是不可靠的.

支持删除首选项的方法是在终端使用defaults命令,例如:

defaults delete application.bundle.IDentifIEr

defaults命令还可以在首选项中删除/更改个别设置.有关完整详细信息,请参阅人员默认值.

总结

以上是内存溢出为你收集整理的objective-c – Xcode 5.0 NSUserdefaults在删除plist后仍然会收到存储的首选项全部内容,希望文章能够帮你解决objective-c – Xcode 5.0 NSUserdefaults在删除plist后仍然会收到存储的首选项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1025488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存