NSUserDefaults

NSUserDefaults的一些使用


   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] valueForKey:@"isFirst"]

  • 这是在UserDefaults中放了一对key/value,只要你不remove它就永远存在

  • if (![[NSUserDefaultsstandardUserDefaults]valueForKey:@"isFirst"])

  • 这句话代表从UserDefaults取【isFirst】对应的key/value,如果没取到,返回nil,nil取【!】代表YES.代表运用第一次启动。
    之后在if中放入
    [[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"isFirst"];

  • 则程序下次启动的时候【isFirst】从UserDefaults取【isFirst】的value就为字符串@"YES",然后取【!】代表NO.就会走else的内容.

  • 典故 :UserDefaults的中的valu可以为字典,但是这个字典中不能含有null 和null的value,如果把含null的value往UserDefaults放,程序会崩溃.

  • 判断用户是否为登陆状态

 [button removeFromSuperview];
   [writeButton removeFromSuperview];
   [ll removeFromSuperview];
 if ([[NSUserDefaults standardUserDefaults] objectForKey:@"isLogin"]) {
        [self loginBtn2];
    }else{
        [self loginBtn];
    }
  • 如果登录走登录后的方法[self loginBtn2];,else则走[self loginBtn];

  • NSUserDefaults 可以存放,用户信息 ,密码,是否为第一次登录等


  • NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL.

你可能感兴趣的:(NSUserDefaults)