为什么我无法使用NSUserDefaults保存对应用程序设置的更改?

Bre*_*nan 0 iphone objective-c nsuserdefaults

我使用以下代码从设置视图中保存值,该视图从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];
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 6

您正在设置用户名和密码的密钥,并使用用户名/密码字符串作为值.

所以,你永远无法检索这些数据(除非你已经知道了用户名和密码;))

if (self.usernameTextField.text != nil) {
    NSLog(@"username: %@", self.usernameTextField.text);
    [defaults setObject:self.usernameTextField.text forKey:kTwitterUsernameKey];
}
Run Code Online (Sandbox Code Playgroud)

尝试交换如上所示.