这篇文章主要内容为通过版本号作为判断条件来判断app安装(更新)后是否为首次启动
代码实现
实现原理是通过NSUserDefaults存储当前app版本号的方式,定义版本号的key为version,通过这里的值和当前app的版本号作比较是否相等来判断,这里一共有两种情况
- 第一种情况app首次安装后进入app,那么NSUserDefaults里面version对应的value肯定没有值,那么取出来之后和app版本号肯定不相等,返回值NO,这是同时给NSUserDefaults里version赋值,这样第二次进入app时再做判断肯定会返回YES了
- 第二种情况是app更新之后第一次进入app,app版本号和NSUserDefaults里version又不一样了,判断后返回值NO,同样同时给NSUserDefaults里version赋值,这样第二次进入app时再做判断会返回YES。
- (BOOL)hasLaunched {
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if (![[userDefaults objectForKey:@"version"] isEqualToString:version]) {
[userDefaults setObject:version forKey:@"version"];
return NO;
}else {
return YES;
}
}```
####效果验证
新建一个工程,把上面方法复制到ViewController里,同时在viewDidLoad加上如下代码
self.view.backgroundColor = [self hasLaunched] ? [UIColor whiteColor] : [UIColor cyanColor];
这时候运行程序,发现第一次进入时或是更新版本号之后第一次进入时ViewController的背景色是青色的,其余时候ViewController的背景色是白色的,效果实现,之后只需要把方法放在正确的位置,然后就可以加上引导页等这样的业务逻辑了。
网友评论