Я мог бы воспользоваться помощью. После нескольких разочаровывающих дней проб и ошибок, я получаю непоследовательные результаты, записывающие предпочтения в NSUserDefaults.iPhone SDK NSUserDefaults не сохраняет правильные значения
Вот последовательные строки кода:
NSLog(@"startTimer(): End Time defaults: %f\n", [defaults floatForKey:kEndTimeKey]);
NSLog(@"startTimer(): new End Time: %f\n", endTime);
[defaults setFloat:endTime forKey:kEndTimeKey];
[defaults synchronize];
NSLog(@"startTimer(): stored EndTimeKey: %f\n", [defaults floatForKey:kEndTimeKey]);
kEndTimeKey постоянная строка.
Как вы можете видеть, я регистрирую текущее значение для ключа, затем регистрирую значение, которое я намерен хранить, синхронизировать, а затем перечитывать сохраненное значение. Кажется, просто мне, но вот выход отладчик:
2009-07-22 22:05:43.263 TimerTest3[1584:207] startTimer(): End Time defaults: 0.000000
2009-07-22 22:05:43.266 TimerTest3[1584:207] startTimer(): new End Time: 270018630.916571
2009-07-22 22:05:43.287 TimerTest3[1584:207] startTimer(): stored EndTimeKey: 270018624.000000
Я вижу исходное значение 0, предполагаемое значение, оканчивающимся на 571, и значение, считанное из кэша, который 6 секунд выключен.
Я не уверен, откуда появился новый дефолт. Есть идеи? Я получаю подобное поведение на устройстве и на симуляторе.
Благодаря Брэд
Я считаю, что вы правы. Я пытался хранить NSTimeIntervals, которые определены как двойные. Это объясняет, почему в некоторых случаях функциональность была близка, непоследовательная в других, и прекрасная для небольших чисел. – 2009-07-23 14:03:27