NSUserDefaults
在用户的iOS设备上持久化大约100个键/值对。每个键/值对都只是一个字符串键和布尔值。这几乎一直很好用。最近,有些用户提到他们的应用程序被“重置”。具体来说,他们的应用程序未能正确读取NSUserDefaults
中的数据。我试图理解这是如何发生的。需要注意的几件事情:
- 每次更新用户默认设置后,我都会调用
synchronize
- 我没有清除单个条目或整个默认设置的任何代码
- 默认设置在
application:didFinishLaunchingWithOptions:
中读取 - 当应用程序从后台切换到前台时,不会读取默认设置
NSUserDefaults
后备plist可能无法访问。我不确定如果在后台崩溃时,后台应用程序是否会重新启动。然而,我很好奇,因为我的应用程序确实在后台崩溃,根据我的崩溃报告服务。此外,此崩溃在收到内存警告后立即发生。
应用程序在后台崩溃后重新启动时(在后台),是否可能无法读取用户默认设置?
非常感谢您对如何诊断此问题的任何建议!
编辑-更多信息:听起来CoreLocation框架可能会导致应用程序在后台崩溃后重新启动。我的应用程序包括一些第三方广告和分析SDK。实际上,这个问题在添加一个特定的SDK后开始出现,该SDK可以使用CoreLocation。