微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

objective-c – Lion下的NSUserDefaults和沙盒

根据Apple的要求,移动我的一个项目来支持沙盒.我像这样使用UserDefaults:

[[NSUserDefaults standardUserDefaults] setobject:@(myNumber) forKey:myNumberKey];
[[NSUserDefaults standardUserDefaults] synchronize];

一切都按预期工作,直到我启用沙盒.如果我启用了沙盒,则应用程序会在其沙箱目录(.plist.lockfile)中创建一个锁定文件,并且不会创建实际的.plist文件.

我做错了什么以及如何在沙箱环境下将我的设置存储在UserDefaults中?

更新:安装新的10.7.3与最新的Xcode在一个单独的Mac上 – 相同的项目编译并在启用沙盒的情况下正常工作.

此外,我试图在我的Mac上运行这个项目,其中沙箱在不同的用户帐户(新创建)下工作,结果完全相同 – 没有去.此时我认为问题在于此特定mac上的系统配置.问题是 – 可以安全地假设我是唯一一个有这个奇怪问题的人吗?可能不是…

解决方法

这应该工作正常.如果首选项系统能够创建锁定文件,则表示您的应用程序具有在该目录中创建文件的适当权限,并且已正确查找应放置它们的位置.因此,其他一些必须出错.

发生这种情况时是否有任何控制台记录?什么是-synchronize的返回值?

(除此之外:通常情况下,-synchronize不是必需的,只会使你的应用程序变慢,NSUserDefaults会处理它自己)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐