美文网首页
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