使用NSUserDefaults保存和显示数据

时间:2011-09-26 08:23:57

标签: iphone objective-c ios nsuserdefaults

我使用以下代码从UITextField保存了一些输入:

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:myTextField.text forKey:@"myTextFieldKey"];
    [defaults synchronize];

我想在另一个视图控制器的UILabel上显示这个保存的文本。

我试过了:

  myLabel.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"myTextFieldKey"];

但没有显示。对此的任何帮助都会很棒。感谢。

4 个答案:

答案 0 :(得分:4)

加载和保存代码是正确的,所以看起来问题就是其他问题。

试试这个来调试:

NSString *aValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"myTextFieldKey"];
NSLog(@"Value from standardUserDefaults: %@", aValue);

NSLog(@"Label: %@", myLabel);
myLabel.text = aValue;

现在,您将看到是否设置了NSUserDefaults中的值检索器,以及标签是否已被绑定。

答案 1 :(得分:3)

 [[NSUserDefaults standardUserDefaults] setValue:myTextField.text forKey:@"myTextFieldKey"];
 [[NSUserDefaults standardUserDefaults] synchronize];

之后使用 valueForKey 而不是objectForKey

myLabel.text = [[NSUserDefaults standardUserDefaults] valueForKey:@"myTextFieldKey"];

答案 2 :(得分:1)

尝试:

myLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:@"myTextFieldKey"];

答案 3 :(得分:1)

检查myTextFieldmyLabel是否为零。