如何在更新的应用程序上清除 NSUserDefaults
How to clear out NSUserDefaults on an updated app
我正在使用 HockeyApp 和 Ship.io 将我的 ios 应用程序部署到每个构建的多个测试人员。在我的最新版本中,我更改了我保存到 NSUserDefaults 中的某些对象的数据类型,现在它崩溃了,因为存储在每个人本地设备上的旧数据与此更改发生冲突。当一个人删除应用程序并从头开始重新安装时,此崩溃消失(bc userdefaults 被清除)
我想要某种清除逻辑,以便在人们更新到最新版本时清除 NSUserDefaults。我怎样才能做到这一点?
这样的事情怎么样?
-(void)removeNSUserDefaults {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@“yourkey1”];
[defaults removeObjectForKey:@“yourkey2”];
//do this for all your keys..
[defaults synchronize];
}
只需从字典中删除对象
我会检查旧密钥是否存在以及它是否会使用以下方法重置默认值:
NSString *domainName = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:domainName];
(在手机上打字,如果格式不好请见谅)
我正在使用 HockeyApp 和 Ship.io 将我的 ios 应用程序部署到每个构建的多个测试人员。在我的最新版本中,我更改了我保存到 NSUserDefaults 中的某些对象的数据类型,现在它崩溃了,因为存储在每个人本地设备上的旧数据与此更改发生冲突。当一个人删除应用程序并从头开始重新安装时,此崩溃消失(bc userdefaults 被清除)
我想要某种清除逻辑,以便在人们更新到最新版本时清除 NSUserDefaults。我怎样才能做到这一点?
这样的事情怎么样?
-(void)removeNSUserDefaults {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@“yourkey1”];
[defaults removeObjectForKey:@“yourkey2”];
//do this for all your keys..
[defaults synchronize];
}
只需从字典中删除对象
我会检查旧密钥是否存在以及它是否会使用以下方法重置默认值:
NSString *domainName = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:domainName];
(在手机上打字,如果格式不好请见谅)