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中放入键值对,它是永生的,只要不Remove,永远存在在应用程序当中
  • if (![[NSUserDefaults standardUserDefaults]valueForKey:@"isFirst"])
    这句话代表从UserDefaults中取[isFirst]对应的value
    如果没取到返回为nil[!]代表YES,这时应用是第一次启动,之后在if中放入[NSUserDefaults standardUserDefaults] valueForKey:@"isFirst"],则程序下次启动时,[isFirst]从UserDefaults取[isFirst]的value就为字符串“@YES”,然后取[!]代表NO,就会走else的内容.

  • 典故
  • UserDefaults中的value可以为字典,但是不能含有nullvalue,如果把含有nullvalue放入UserDefaults中,程序会崩溃。
  • 判断用户登陆前还是登陆后
if ([[NSUserDefaults standardUserDefaults]valueForKey:@"isFirst"] ==nil) {
        UINavigationController *navc = [[UINavigationController alloc] initWithRootViewController:[[LoginViewController alloc] init]];
        [self.navigationController presentViewController:navc animated:YES completion:nil];
    }else{
        [self.navigationController pushViewController:[[LandViewController alloc] init] animated:YES];
    }

  • 总结
  • userDefaults中可以存放:登陆信息,用户信息,用户名密码,是否第一次登陆等简单的信息。

UserDefaults_第1张图片

你可能感兴趣的:(UserDefaults)