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类型。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 判断用户是否第一次登录 判断应用是否是第一次启动 [[NSUserDefaults standardUserDef...
    徐大拿阅读 266评论 0 0
  • 判断应用是否第一次使用 [NSUserDefaults standardUserDefaults] valueFo...
    你瞅誰阅读 421评论 0 3
  • 判断用户是否第一次登录 判断应用是否是第一次启动 [[NSUserDefaults standardUserDef...
    必须这么打阅读 436评论 0 0
  • UserDefaults默认值如何进行判断? 判断应用是否第一次运用 判断应用是否是第一次启动 [[NSUserD...
    shanshan950224阅读 2,680评论 1 0
  • 判断应用是否是第一次登录 [NSUserDefaults standardUserDefaults] valueF...
    小布丁儿阅读 240评论 0 0