如何在更新的应用程序上清除NSUserDefaults

时间:2015-03-08 17:08:19

标签: ios objective-c nsuserdefaults hockeyapp

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

我想要某种清除逻辑,以便在人们更新到最新版本时清除NSUserDefaults。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

这样的事情怎么样?

-(void)removeNSUserDefaults {


    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

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

}

只需从字典中删除对象