NSUserDefaults 不保存数据。限制?
NSUserDefaults Not Saving Data. Limits?
我有这样一个问题:在userDefaults中保存数据的语法很清楚,并且每天都在应用程序中工作。今天我有这样一个问题,同步后什么都没有存储。 P.S我没有语法错误。
这里是保存和读取的例子:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Whosebug"];
[[NSUserDefaults standardUserDefaults] synchronize];
和阅读
BOOL Whosebug = [[NSUserDefaults standardUserDefaults] boolForKey:@"Whosebug"];
我知道有关 mutableCopy 的信息,但在这种简单的情况下不需要它。
那么 userDefaults 有什么限制吗?我正在真实设备和存储上进行测试,我有高达 50GB 的免费空间。我知道 userDefaults 存储在 plist 文件中,在紧急情况下可能是 1MB,但我什至不超过 1kb :( ...
using latest xcode and latest iOS version on 6S.
需要建议。感谢帮助。
我以前遇到过这个问题。在将其添加到新对象之前,我只是删除了密钥。
示例
[NSUSER removeObjectForKey:@"savedData"];
[NSUSER setBool:YES forKey:@"savedData"];
[NSUSER synchronize];
注意:
如果你用了那么多 no NSUSER 那么它就像嘲笑一样。这是我的小经验。
因此,在上午工作半小时后,我找到了解决方案,实际上是问题所在。像我这样的案例,90%都是开发者的错,原来如此。
我有超过 30 个用户默认值,例如其中 15 个有 initWithSuitName
(标识符),使用标识符 id 保存的所有内容都运行良好但没有它保存值由于偏好冲突而损坏。
Solution:
我用标识符替换了未命名的 userDefaults,一切都已修复。
In Case of some problem with NSUserDefaults:
NSUserDefaults - 是线程安全的。
同步-立即保存数据
保存数据 - 如果应用程序将终止丢失数据的几率为 50%,在调试后点击停止按钮是相同的情况。 P.S如果没有保存在正确的位置,数据将丢失 50%。
调试 NSUserDefaults - 在调试器中你可以简单地输入 po [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]
和 po [[NSUserDefaults standardUserDefaults] valueForKey:@"KeyForSavedData"]
共享容器示例 - 如果您想在应用程序和扩展之间共享 属性,您只需在 [=15= 中输入 appGroup
标识符]
我有这样一个问题:在userDefaults中保存数据的语法很清楚,并且每天都在应用程序中工作。今天我有这样一个问题,同步后什么都没有存储。 P.S我没有语法错误。
这里是保存和读取的例子:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Whosebug"];
[[NSUserDefaults standardUserDefaults] synchronize];
和阅读
BOOL Whosebug = [[NSUserDefaults standardUserDefaults] boolForKey:@"Whosebug"];
我知道有关 mutableCopy 的信息,但在这种简单的情况下不需要它。
那么 userDefaults 有什么限制吗?我正在真实设备和存储上进行测试,我有高达 50GB 的免费空间。我知道 userDefaults 存储在 plist 文件中,在紧急情况下可能是 1MB,但我什至不超过 1kb :( ...
using latest xcode and latest iOS version on 6S.
需要建议。感谢帮助。
我以前遇到过这个问题。在将其添加到新对象之前,我只是删除了密钥。 示例
[NSUSER removeObjectForKey:@"savedData"];
[NSUSER setBool:YES forKey:@"savedData"];
[NSUSER synchronize];
注意: 如果你用了那么多 no NSUSER 那么它就像嘲笑一样。这是我的小经验。
因此,在上午工作半小时后,我找到了解决方案,实际上是问题所在。像我这样的案例,90%都是开发者的错,原来如此。
我有超过 30 个用户默认值,例如其中 15 个有 initWithSuitName
(标识符),使用标识符 id 保存的所有内容都运行良好但没有它保存值由于偏好冲突而损坏。
Solution:
我用标识符替换了未命名的 userDefaults,一切都已修复。
In Case of some problem with NSUserDefaults:
NSUserDefaults - 是线程安全的。
同步-立即保存数据
保存数据 - 如果应用程序将终止丢失数据的几率为 50%,在调试后点击停止按钮是相同的情况。 P.S如果没有保存在正确的位置,数据将丢失 50%。
调试 NSUserDefaults - 在调试器中你可以简单地输入 po [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]
和 po [[NSUserDefaults standardUserDefaults] valueForKey:@"KeyForSavedData"]
共享容器示例 - 如果您想在应用程序和扩展之间共享 属性,您只需在 [=15= 中输入 appGroup
标识符]