我的应用程序中有4个数据库目录,我将切换四个目录。 当我启动应用程序时,我读取NSUserDefaults并尝试在内存中加载默认目录,但这是第一次没有发生。相反,我第一次返回null值只是因为DB连接因某些未知原因而未成功,调试器也无法去那里。
但是应用程序下次启动时,会成功获取值。
请帮忙
答案 0 :(得分:1)
如果您尝试从用户默认设置中获取某些必要的数据,则第一次运行该应用时可能不存在。您可能需要使用以下方法创建一组默认值(heh):
-[NSUserDefaults registerDefaults:]
...在查询任何值的用户默认值之前。
来自User Defaults Programming Topics
注册域名是一组 应用程序提供的默认值 除非用户覆盖它们,否则使用它 “默认默认值”或“工厂 设置”)。例如,第一个 你运行Xcode的时间,没有 IndexOnOpen值保存在您的 默认数据库。因此,Xcode 注册的默认值 IndexOnOpen中 NSRegistrationDomain作为“抓住所有人” 值。此后Xcode可以假设 始终是NSUserDefaults对象 有一个值可以返回默认值, 简化用户默认值的使用。
您设置NSRegistrationDomain默认值 以编程方式使用该方法 registerDefaults: