之前我帮某公司做的一个iOS app,升级的时候发现闪退问题。后来检查是因为升级的时候数据库出现一点小问题导致对象为空。
下面这个代码可以检测程序是否更新了,从而进行相关处理:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// 首先获得目前运行版本的数值,例如:1.1.2 NSString *currentAppVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; // 具体思路: // 检查是否已经将之前版本的值保存在 @"currentAppVersion" 的key里面 // 如果没有,证明只是第一个有这个代码的版本(或者是第一版),那么就将目前的版本号存进去 // 如果有,那么就比较已经保存的值和现在的版本值 if ([[NSUserDefaults standardUserDefaults] stringForKey:@"currentAppVersion"]==nil) { NSLog(@"No previous version found."); [[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:@"currentAppVersion"]; } }else{ NSString *previousVersion = [[NSUserDefaults standardUserDefaults] stringForKey:@"currentAppVersion"]; [[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:@"currentAppVersion"]; if ([previousVersion compare:currentAppVersion options:NSNumericSearch] == NSOrderedAscending) { NSLog(@"App Updated"); } } [[NSUserDefaults standardUserDefaults] synchronize]; |