Сохранение и получение значения UILabel с помощью NSUserDefaults - PullRequest
0 голосов
/ 18 мая 2011

Я пытаюсь сохранить значение UILabel в NSUserDefaults. Я сделал IBAction с этим кодом:

-(IBAction)saveData:(id)sender {
    NSString *resultString = label.text;
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setObject:resultString forKey:@"result"];
    [prefs synchronize];

}

Затем я подключаю его к кнопке с помощью Touch Up Inside. Что показывает журнал после нажатия кнопки:

result = 0;

Когда я нажал второй раз, тогда это работает.

result = "28.34";

Что я делаю неправильно и как я могу получить результат?

EDIT

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

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

Ответы [ 3 ]

0 голосов
/ 18 мая 2011

Ваша запись в журнале должна быть

NSLog (@ "% @", [[NSUserDefaults standardUserDefaults] objectForKey: @ "результат"]);

Это должно быть после того, как вы установите объект в NSUserDefaults.

0 голосов
/ 20 мая 2011

Добавьте это к своему приложениюDidFinishLaunching в appDelegate или в методе init в viewController (вы должны создать его):

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];   
if(prefs == nil)  
{      
[prefs setObject:@"anything" forKey:@"result"];  
    [prefs synchronize];  
}  
0 голосов
/ 18 мая 2011

Ваш код выглядит правильно, поэтому проблема, вероятно, не в отправленной вами функции, а в коде, содержащем ваш NSLog.Возможно, вы записываете значение таким образом, что оно пропускает первый раз, когда оно устанавливается.

...