IOS UserDefaults

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中可以存放:登陆信息,用户信息,用户名密码,是否第一次登陆等简单的信息。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容