Сохранение и отображение данных с NSUserDefaults - PullRequest
2 голосов
/ 26 сентября 2011

Я сохранил некоторые данные из UITextField, используя следующий код:

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

Я хотел бы отобразить этот сохраненный текст на UILabel в другом контроллере представления.

Iпопробовал это:

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

но ничего не отображается.Любая помощь с этим была бы великолепна.спасибо.

Ответы [ 4 ]

4 голосов
/ 26 сентября 2011

Ну, код загрузки и сохранения корректен, поэтому похоже, что проблема в чем-то другом.

Попробуйте отладить:

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

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

Теперь вы увидите, является ли средство получения значенияот NSUserDefaults и если этикетка набрана.

3 голосов
/ 26 сентября 2011
 [[NSUserDefaults standardUserDefaults] setValue:myTextField.text forKey:@"myTextFieldKey"];
 [[NSUserDefaults standardUserDefaults] synchronize];

После этого используйте valueForKey , а не objectForKey:

myLabel.text = [[NSUserDefaults standardUserDefaults] valueForKey:@"myTextFieldKey"];
1 голос
/ 26 сентября 2011

Убедитесь, что myTextField и myLabel не равны нулю.

1 голос
/ 26 сентября 2011

Попробуйте:

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