NSUserDefaults在更新后更改了IOS应用程序崩溃

问题描述:

更新了iOS应用程序,并更新了NSUser默认密钥(添加了更多密钥并更改了一些现有密钥名称)从商店更新后,应用程序在初始化时崩溃。如果我完全删除应用程序并重新安装它,那么它工作正常。我们无法清除之前的NSUser默认值,并在更新应用程序时重新创建它(我的意思是通过在更新的应用程序中编写一些逻辑完全重新安装)?NSUserDefaults在更新后更改了IOS应用程序崩溃

+1

如果您显示崩溃是什么(您可以使用Xcode控制台来执行此操作),则可以更轻松地回答此问题。 –

您可以使用下面的代码清除NSUserDefault

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"yourkey"]; 

尝试应用程序启动时分别更新默认数据库同步用户默认

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"YourKey"]; 
[[NSUserDefaults standardUserDefaults] synchronize];yourkey 

我建议你写一个迁移例程检查某些前者键。

+0

谢谢。这个想法可能适用于我 –

可以usuually通过这样做清理掉整个NSUserDefaults的,以防万一您忘记了钥匙或东西:

[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]]; 

您可以检查应用程序是开放的第一时间,然后明确NSUserDefault如下

[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]]; 

之后根据您的要求再次设置NSUserDefault