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中方的一对KeyValue,只要不Remove永远都存在
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"])
- 这句话代表从UserDefaults中取(isFirst)对应的value,如果没取到返回的是nil,nil取非(!代表非), nil取非代表的是YES,这是应用的第一次启动。
- 之后在if中放入
[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"]
,则程序下次启动时(isFirst)从UserDefaults取(isFirst)的value就为字符串@"YES",然后取(非)代表NO,就会走else的内容。
-
典故 UserDefaults中的value可以为字典,但是字典中不能含有null的value。如果要把含null的value放入UserDefaults程序会崩溃
- 判断用户是否为登陆状态
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"isLogin"]) {
// 登陆后的页面效果
[self loginBtn2];
}else{
[self loginBtn];
}
#NSUserDefaults可以存放一些个人信息,登陆界面的数据,用户名、密码之类,页面是否第一次启动的数据。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息。 NSUserDefaults类型:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。