gpt4 book ai didi

ios - NSUserDefaults standardUserDefaults 对象被随机删除

转载 作者:可可西里 更新时间:2023-11-01 05:41:02 24 4
gpt4 key购买 nike

我面临着 NSUserDefaults 的一个非常奇怪的行为,问题是 [NSUserDefaults standardUserDefaults] 对象被随机删除!

我的 [NSUserDefaults standardUserDefaults] 包含大约 65 个对象(60 个小 NSString 和 3 个数组,最大计数可能是 4 和 2 个其他数组,最大计数是 30..注意,面对这个问题时,它从来不是最大的情况) ,这些对象之一是检查用户是否已经完成注册阶段的值。启动应用程序时,有时此 NSUserDefaults 将仅包含这 65 个对象中的 5 个对象,而其他对象将从 plist 中删除,即使我重新启动应用程序也不会再次出现,这会导致用户再次进入注册阶段!

我很确定我正确使用了保存功能

[[NSUserDefaults standardUserDefaults] setObject:@"Value"forKey:@"Key"];
[[NSUserDefaults standardUserDefaults] 同步];

我已经在谷歌上搜索了类似的行为,但没有找到任何可以提供帮助的东西!有没有人遇到过这种行为,解决方法是什么?

谢谢你的帮助

最佳答案

我确实想在这里帮忙,因为我在我的一个项目中遇到过完全相同的奇怪行为。

请耐心等待,我的项目发生的事情是:我有一个单例类,它封装了几个属性,并且我重写了这些属性的 setter 和 getter。在 setter 方法中,我获取 standardUserDefaults 实例并为键设置对象,然后同步。在 getter 方法中,我返回键的对象。我还有一个登录成功指示器值来指示登录是否成功。和你的问题一样,我的元素消失了。经过几天的努力,事实证明,当网络无法访问时,登录指示器被初始化为 false。在 indicator false 子句中,我将 nil 对象设置为用户默认值。

我的观点是:

  • 仔细检查 standardUserDefaults setObject:forKey: 函数调用在逻辑上是否正确,确保调用时对象NOT nil
  • 检查您是否有使对象无效的逻辑(登录、网络更改等)。
  • 运行测试,找到重现问题的最少步骤。使用调试 session 检查对象。 (放弃相信随机消失)

希望这能提供线索。

关于ios - NSUserDefaults standardUserDefaults 对象被随机删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24518746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com