0

次のコードを使用して、UITextField から値を取得し、NSUserDefaults に保存する設定ビューから値を保存しています。以下のコードは synchronize を呼び出しますが、変更を保存していません。ここで何が間違っていますか?

- (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 に答える