UserDefaults默认值如何进行判断?
- 判断应用是否第一次运用
// 引导页
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;
}
- 判断应用是否是第一次启动
[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"isFirst"];
这是在Userdefaults中放入了一对键值对,它是个永生字典,只要不remove,永远都存在这个应用程序中。
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"])
这句话代表,从userDefaults中取【isFirst】对应的value,如果取不到返回nil,nil取非(!),代表YES,代表着应用第一次启动,之后在userDefaults中放入[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"isFirst"];
则程序下次启动时,【isFirst】从userDefaults取出值【isFirst】的value---为字符串@"YES",取非【!】代表假(NO),就会走else的内容。
判断用户是否为登陆状态
[button removeFromSuperview];
[writeButton removeFromSuperview];
[ll removeFromSuperview];
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"isLogin"])
{
[self loginBtn2];
}else{
[self loginBtn];
}
- 如果登录走登录后的方法[self loginBtn2];,else则走[self loginBtn];
典故:
*NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL等类型,当为字典时不能有null
的value,如果把有null的value放入userDefaults,那么程序会崩。
总结:
- userDefaults中可以存放:登陆信息,用户信息,用户名密码,是否第一次登陆等简单的信息。