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"])
- 这是在userdefault里放了一对key`value(键值对)。因为userdefault是个永生的的字典,只要不remove它就永远存在。
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"])
- 这是在userdefault中取isfirst的value,如果没取到则返回nil,nil取非(!)代表是YES,那么也就是说是第一次启动。之后在if中放入valueForKey:@"isFirst"则程序下次启动时取isfirst的value,然后再取非(!)就是NO,则会走else的方法
我们做项目的时候有个典故
- userdefault中的value可以为字典但是这个字典不能含有null的value否则程序会崩溃。
判断用户是否登录也会用到,此时还需要添加注销(remove)
-(void)click{
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"isLogin"];
[self.navigationController popViewControllerAnimated:YES];
}
可以用来存放用户名,密码,和是否登录和第一次启动程序等。
注意的是:在NSUserDefaut中,不能保存自定义对象,只可保存如NSArray,NSDictionary,NSInteger,NSString等数据