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;
    }
   return YES;
  • 判断应用是否是第一次启动
  • [[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"isFirst"];
  • 这是在UserDefaults中放了一对键值对,只要你不remove,它将永远存在。
  • 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;
    这句话代表从UserDefaults中取(isfirst)对应的key/ value,如果没取到,那就返回(nil)nil取非(!)代表yes,那么就代表应用是第一次启动。之后在if中放[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"isFirst"];
  • 则程序下次再启动的时候(isfirst)从UserDefaults取(isfirst)的value就为字符串@"yes",然后取(!),代表no,就会走else的内容。
  • 典故:
    userDefaults中的value可以为字典 但字典中不能含有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];
  • UserDefaults可以存放个人信息,用户名密码,是否第一次登录,是否第一次启动等。

你可能感兴趣的:(userDefaults相关)