私はいくつかの助けを使うことができます。数回の試行錯誤のイライラした日の後、私は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を格納しようとしていました。これは、なぜ機能が近いのか、他の機能には矛盾しているのか、少数の場合はうまく機能するのかを説明します。 –