我使用以下代码从设置视图中保存值,该视图从UITextField获取值并使用NSUserDefaults存储它们。下面的代码甚至调用同步,但它没有保存更改。我在这里做错了什么?
- (IBAction)save {
NSLog(@"save");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (self.usernameTextField.text != nil) {
NSLog(@"username: %@", self.usernameTextField.text);
[defaults setObject:kTwitterUsernameKey forKey:self.usernameTextField.text];
}
if (self.passwordTextField.text != nil) {
NSLog(@"password: %@", self.passwordTextField.text);
[defaults setObject:kTwitterPasswordKey forKey:self.passwordTextField.text];
}
[defaults synchronize];
[self dismissModalViewControllerAnimated:TRUE];
}
答案 0 :(得分:6)
您正在设置用户名和密码的密钥,并使用用户名/密码字符串作为值。
所以,你永远无法检索这些数据(除非你已经知道用户名和密码;)
if (self.usernameTextField.text != nil) {
NSLog(@"username: %@", self.usernameTextField.text);
[defaults setObject:self.usernameTextField.text forKey:kTwitterUsernameKey];
}
尝试如上所示进行交换。
答案 1 :(得分:0)
您需要设置kTwitterUsernameKey,如下所示
//Saving kTwitterUsernameKey
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:self.usernameTextField.text forKey:kTwitterUsernameKey];
//Retrieving kTwitterUsernameKey
NSString *myString = [defaults stringForKey:@"kTwitterUsernameKey"];
NSUserDefaults的一般模式如下所示
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
// retrieve an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];