if (![[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"]) {
AppGuidViewController *appGuid = [[AppGuidViewController alloc] initWithImageArray:@[@"guies01",@"guies02",@"guies03"] startBtnDistanceWithBottomArray:@[@70,@100,@110,@120] needLoadVC:self.viewController];
self.window.rootViewController = appGuid;
[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"isFirst"];
}else{
self.window.rootViewController = self.viewController;
}
return YES;
}
- 判断应用是否是第一次登录
[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"]
- 这是在userDefaults放了一对key value(键值对)只要不删永远存在
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"]) {
- 这句话代表从userDefaults取【isFirst】对应的key/value,如果没取到,返回nil,nil取【!】代表yes,代表运用第一次启动。
setValue:@"YES" forKey:@"isFirst"];
则程序下次启动的时候【isfirst】从userDefaults取【isFirst】的value就为字符串@“yes”,然后取【!】代表no就会走else的内容
典故:
userDefaults中的value可以为字典 但字典中不能含有null的value,如果把含有null的value放入userDefaults那么程序会崩。