0

我正在使用以下代码从设置视图中保存值,该设置视图从 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];
}
4

2 回答 2

6

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

因此,您将永远无法检索此数据(除非您已经知道用户名和密码;))

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

尝试如上所示交换。

于 2010-03-19T14:44:37.587 回答
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"];
于 2010-03-19T15:28:12.090 回答