加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – Lion下的NSUserDefaults和沙盒

发布时间:2020-12-16 07:29:02 所属栏目:百科 来源:网络整理
导读:根据Apple的要求,移动我的一个项目来支持沙盒.我像这样使用UserDefaults: [[NSUserDefaults standardUserDefaults] setObject:@(myNumber) forKey:myNumberKey];[[NSUserDefaults standardUserDefaults] synchronize]; 一切都按预期工作,直到我启用沙盒.如
根据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会处理它自己)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读