更新应用程序时如何强制删除 NSUserDefaults?
How to force delete NSUserDefaults when app is updated?
如果新版本不向后兼容以前版本的数据,确保在升级时删除 NSUserDefaults
的最佳方法是什么?
一种简单的方法是保留一个默认值来跟踪是否已执行升级过程。新版本会检查它,如果尚未设置,则执行升级过程并设置值以确保该过程不会执行两次。像这样:
static NSString * const kUserDefaultsDidUpgradeKey = @"didUpgrade";
NSUserDefaults *ud = NSUserDefaults.standardUserDefaults;
if (![ud boolForKey:kUserDefaultsDidUpgradeKey]) {
// Delete the keys here
[ud setBool:YES forKey:kUserDefaultsDidUpgradeKey];
}
但是,假设您将来要处理其他版本迁移,更稳健的方法是将应用程序版本写入用户默认值,以便在更新应用程序时,新版本可以检查版本查看以前版本的关键,运行相应的升级过程。
如果新版本不向后兼容以前版本的数据,确保在升级时删除 NSUserDefaults
的最佳方法是什么?
一种简单的方法是保留一个默认值来跟踪是否已执行升级过程。新版本会检查它,如果尚未设置,则执行升级过程并设置值以确保该过程不会执行两次。像这样:
static NSString * const kUserDefaultsDidUpgradeKey = @"didUpgrade";
NSUserDefaults *ud = NSUserDefaults.standardUserDefaults;
if (![ud boolForKey:kUserDefaultsDidUpgradeKey]) {
// Delete the keys here
[ud setBool:YES forKey:kUserDefaultsDidUpgradeKey];
}
但是,假设您将来要处理其他版本迁移,更稳健的方法是将应用程序版本写入用户默认值,以便在更新应用程序时,新版本可以检查版本查看以前版本的关键,运行相应的升级过程。