【发布时间】:2017-06-07 20:15:53
【问题描述】:
我是 iOS 的新手,Object-C,我正在尝试使用 NSUserDefaults 进行简单的登录/注册登录。
我的问题是:如何访问/获取保存在 NSUserDefaults 中的值以验证用户是否已经存在?
这是注册新用户的代码:
-(void)registerNewUser {
// Getting username and the password
NSString *newUsername = self.usernameRegisterTextField.text;
NSString *newPassword = self.passwordRegisterTextField.text;
// Using NSUserDefaults to storage username and password
NSUserDefaults *newUser = [NSUserDefaults standardUserDefaults];
[newUser setObject:newUsername forKey:@"username"];
[newUser setObject:newPassword forKey:@"password"];
[newUser setBool:YES forKey:@"registered"];
[newUser synchronize];
[self performSegueWithIdentifier:@"registerSucessSegue" sender:nil];
}
我正在尝试获取保存在 NSUserDefaults 中的值来验证用户是否已经存在,而不是再次调用登录屏幕:
- (IBAction)productTableButton:(id)sender {
// Verification if an user exist
NSUserDefaults *newUser = [NSUserDefaults standardUserDefaults];
BOOL newUserExist = [newUser valueForKey:@"registered"];
if (newUserExist == YES) {
[self performSegueWithIdentifier:@"productSegue" sender:nil];
} else {
[self performSegueWithIdentifier:@"loginSegue" sender:nil];
}
}
当我尝试访问保存在 NSUserDefaults 中的用户的值时,我做错了什么吗?
【问题讨论】:
-
永远不要使用
valueForKey来获得BOOL,顺便说一句,无论如何不要使用valueForKey和NSUserDefaults。有boolForKey
标签: objective-c nsuserdefaults