Xcode 6刷新NSUserDefaults
问题描述:
我的应用程序在NSUserDefaults中存储了一些状态信息。当使用Build &运行最新版本的Xcode 6(GM)时,安装时会刷新所有默认值。另外,我的Settings.bundle中输入的值被删除(这是用户默认值被刷新的另一个标志)。有关如何解决这个问题的任何建议?Xcode 6刷新NSUserDefaults
答
因为它似乎我是有点误导。我在启动时检查了应用程序文档目录中存在的一些文件。如果他们不是,我从NSUserDefaults中删除了东西。 Apple似乎已经更新了Xcode Build &运行实现导致新的应用程序文件路径(路径中的标识符每次都会更改)生成&运行被执行。只需以正常方式重新启动应用程序而无需构建&运行(如同普通用户那样),一切正常,路径保持不变。
答
以下使用。它现在会工作。
[[NSUserDefaults alloc] initWithSuiteName:@"group identifier"]; // this is introduced in iOS8
[[NSUserDefaults alloc] setValue:@"yes" forKey:@"test"];
[[NSUserDefaults alloc] synchronize];
如果还是不行,请Product>>Clean
由于您始终分配NSUserDefaults的新实例,因此显然无法正常工作。另外我需要能够使用standardDefaults来保持我的Settings.bundle正常工作。 – 2014-09-12 07:16:05
@TimSpecht:你有没有找到解决方案呢?我相信它总是为这行分配bcz'[[NSUserDefaults alloc] initWithSuiteName:@“group identifier”];'。检查nsuserdefault组是否存在。如果没有,然后使用这一行... – 2014-09-12 11:22:20
我实际上发现问题的原因:文件目录更改evey时间的路径我启动应用程序:( – 2014-09-12 11:53:28