美文网首页
IOS UserDefaults

IOS UserDefaults

作者: shanshan950224 | 来源:发表于2015-12-10 14:26 被阅读1572次

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中可以存放:登陆信息,用户信息,用户名密码,是否第一次登陆等简单的信息。

相关文章

网友评论

      本文标题:IOS UserDefaults

      本文链接:https://www.haomeiwen.com/subject/ibcyhttx.html