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] valueForKey:@"isFirst"]
  • 这是UserDefaults中方的一对KeyValue,只要不Remove永远都存在
  • if (![[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"])
  • 这句话代表从UserDefaults中取(isFirst)对应的value,如果没取到返回的是nil,nil取非(!代表非), nil取非代表的是YES,这是应用的第一次启动。
  • 之后在if中放入[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"],则程序下次启动时(isFirst)从UserDefaults取(isFirst)的value就为字符串@"YES",然后取(非)代表NO,就会走else的内容。
  • 典故 UserDefaults中的value可以为字典,但是字典中不能含有null的value。如果要把含null的value放入UserDefaults程序会崩溃

  • 判断用户是否为登陆状态
 if ([[NSUserDefaults standardUserDefaults] objectForKey:@"isLogin"]) {
        // 登陆后的页面效果
        [self loginBtn2];
        }else{
        [self loginBtn];
        }

  • #NSUserDefaults可以存放一些个人信息,登陆界面的数据,用户名、密码之类,页面是否第一次启动的数据。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息。 NSUserDefaults类型:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。

你可能感兴趣的:(UserDefaults)