Swift 从零开始 10_判断App是否第一次打开及判断是否是新版本

1.判断App是否第一次打开

1
2
3
4
5
6
7
8
9
10
11
//App第一次启动调用方法 :didFinishLaunchingWithOptions:
if (!NSUserDefaults.standardUserDefaults().boolForKey("firstLaunch")) {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "firstLaunch")
print("App第一次打开")
}else{
print("App不是第一次打开")
}

2.判断App版本是否是新版本(OC)

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
28
29
30
31
32
33
34
35
36
37
#pragma mark - 判断是不是新版本,是否需要显示新特性
- (BOOL)isNewVision {
// MARK: - 目标:第一次启动这个应用时,显示新特性界面,以后就直接进入主程序!
// 版本号:两个版本号。Info.plist中有对应的版本号
// 1. 获取应用当前的版本号
// 获取Info.plist文件的所有信息
NSDictionary *infoDict = [NSBundle mainBundle].infoDictionary;
// 获取当前版本号
NSString *currentBete = infoDict[@"CFBundleShortVersionString"];
// 2. 获取之前存储的版本号
// 获取偏好设置对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *oldBete = [defaults objectForKey:@"app_version"];
// 3. 比较新旧版本号
if ([currentBete isEqualToString:oldBete])
{
//如果新旧版本号相等,直接进入主程序
return NO;
}else {
//如果不相等
//获取偏好设置
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//存储
[defaults setObject:currentBete forKey:@"app_version"];
//立即同步
[defaults synchronize];
return YES;
}
didFinishLaunchingWithOptions:
//设置根控制器(DXGuideController:新特性)
if ([self isNewVision]) {
self.window.rootViewController = [[DXGuideController alloc] init];
}else {
self.window.rootViewController = tabBarVC;