[英]Why can't I save changes to application settings with NSUserDefaults?
I am using the following code to save values from a settings view that takes values from a UITextField and stores them with NSUserDefaults. 我正在使用以下代码从设置视图保存值,该视图从UITextField获取值并将其与NSUserDefaults存储在一起。 The code below even calls synchronize yet it is not saving the changes.
下面的代码甚至调用了同步,但它没有保存更改。 What am I doing wrong here?
我在这里做错了什么?
- (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];
}
You are setting the key to the username and password, with the username/password string as the value. 您正在将密钥设置为用户名和密码,并使用用户名/密码字符串作为值。
So, you'll never be able to retrieve this data (unless you know the username and password already ;) ) 因此,您将永远无法检索此数据(除非您已经知道用户名和密码;))
if (self.usernameTextField.text != nil) {
NSLog(@"username: %@", self.usernameTextField.text);
[defaults setObject:self.usernameTextField.text forKey:kTwitterUsernameKey];
}
Try swapping as shown above. 尝试如上所示进行交换。
You need to set your kTwitterUsernameKey like below 您需要像下面那样设置kTwitterUsernameKey
//Saving kTwitterUsernameKey
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:self.usernameTextField.text forKey:kTwitterUsernameKey];
//Retrieving kTwitterUsernameKey
NSString *myString = [defaults stringForKey:@"kTwitterUsernameKey"];
The general pattern for NSUserDefaults is like below NSUserDefaults的一般模式如下所示
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
// retrieve an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.