大家好,我在我的应用中遇到了问题。我需要确定我的应用程序是否已更新到某个点。我用这种方法发现了如何获得当前版本
NSString *first = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
NSString *second = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
如果应用程序是从itunes更新的,那么更改了哪个var以确定我的应用程序已更新,因为我通过修改了目标>摘要>版本中的xcode来证明。第一个var发生了变化,但第二个变化没有变化。
我必须选择第一个或第二个,以及我如何证明这一点?
答案 0 :(得分:1)
我不确定这是否是您要查找的内容,但此代码可以通过在NSUserDefaults中存储版本信息来告诉您应用是否已更新。
- (BOOL)wasUpdated {
// access NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// get previous version number from defaults
NSString *previousVersion = [defaults stringForKey:@"previousVersion"];
// get current version number from info plist
NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
// check against previousVersion being nil
if (!previousVersion) {
// set current version to previous version
[defaults setObject:currentVersion forKey:@"previousVersion"];
// previousVersion didn't exist and can't be checked, return NO
return NO;
}
// return YES if the versions are not the same
if (NSOrderedSame != [previousVersion compare:currentVersion]) return YES;
// return NO if they are the same
return NO;
}
希望这就是你所需要的。告诉我,如果我不明白你的意思。