- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
// Override point for customization after application launch.
// 创建window
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 设置根控制器
self.window.rootViewController = [self pickViewController];
// 显示window
[self.window makeKeyAndVisible];
// 把当前的版本号(info) 存到沙盒中
[self saveAppVersion];
return YES;
}
// 判断版本号 返回应该加载的控制器
- (UIViewController*)pickViewController
{
// 获取当前程序的版本(info.plist里面的版本号)和沙盒之前保存的版本号对比
if (![[self loadAppVersion] isEqualToString:[self loadSavedAppVersion]]) {
// 如果 一样 那么显示 tabbar
// 创建一个tabbarController(window的根控制器)
CZTabBarController* tabbarController = [[CZTabBarController alloc] init];
return tabbarController;
}
else {
// 如果不一样 那么显示 新特性
CZGuideController* vc = [[CZGuideController alloc] init];
return vc;
}
}
// 获取沙盒中保存的版本号
- (NSString*)loadSavedAppVersion
{
// 获取ud单例
NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
return [ud objectForKey:@"appVersion"];
}
// 获取info的版本号
- (NSString*)loadAppVersion
{
// 获取info字典
NSDictionary* dict = [NSBundle mainBundle].infoDictionary;
return dict[@"CFBundleShortVersionString"];
}
// 把当前info中的版本号 保存到沙盒中
- (void)saveAppVersion
{
// 获取info的版本号
NSDictionary* dict = [NSBundle mainBundle].infoDictionary;
// 保存到沙盒
NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
[ud setObject:dict[@"CFBundleShortVersionString"] forKey:@"appVersion"];
}