我将使用新的数据结构向我的应用程序发送更新,因此,如果用户正在更新我的应用程序,我需要更新他们当前的数据。所以我想知道如何以编程方式判断用户是否更新了我的应用程序或安装了新副本(如果安装了新副本,我不需要更新任何内容)?
最佳答案
检查数据结构是一个可靠的解决方案。我开始担心我自己的应用程序中那些不升级多个版本的人。我觉得这会导致无数的结构检查。下面显示的代码确定并将版本和以前的版本存储在 NSUserDefaults
中。如果需要,您可以为这些不同的版本差异场景进行编码。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
BOOL versionUpgraded;
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
NSString *preVersion = [prefs stringForKey:@"appVersion"];
if ([prefs stringForKey:@"appVersion"] != nil) {
//see if version is the same as prior
//if not it is an Upgraded
versionUpgraded = !([preVersion isEqualToString: version]);
} else {
//nil means new install
//This needs to be YES for the case that
//"appVersion" is not set anywhere else.
versionUpgraded = YES;
}
if (versionUpgraded) {
[prefs setObject:version forKey:@"appVersion"];
[prefs setObject:preVersion forKey:@"prevAppVersion"];
[prefs synchronize];
}
关于iphone - 如何知道用户是否已更新应用程序或安装了新副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6034701/