如何在更新的应用上清除 NSUser默认值



我正在使用HockeyApp和 Ship.io 将我的iOS应用程序部署到每个构建的多个测试人员。在我的最新版本中,我更改了保存到 NSUserDefaults 中的某些对象的数据类型,现在它崩溃了,因为存储在每个人本地设备上的旧数据与此更改冲突。当一个人删除应用程序并从头开始重新安装时,此崩溃将消失(bc 用户默认值被清除)

我想要某种清除逻辑,以便在人们更新到最新版本时清除 NSUserDefaults。我该怎么做?

我会检查旧密钥是否存在,以及它是否确实使用以下方法重置默认值:

NSString *domainName = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:domainName];

(在手机上输入,如果格式很糟糕,很抱歉)

这样的事情呢?

-(void)removeNSUserDefaults {

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults removeObjectForKey:@“yourkey1”];
    [defaults removeObjectForKey:@“yourkey2”];
    //do this for all your keys..
    [defaults synchronize];
}

只需从字典中删除对象

最新更新