몇 가지 도움을 줄 수 있습니다. 몇 번의 시행 착오 끝에 나는 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 초 동안 꺼짐입니다 캐시에서 읽은 값.
새로운 기본값이 어디서 왔는지 확실하지 않습니다. 어떤 아이디어? 장치 및 시뮬레이터에서 비슷한 동작이 발생합니다.
감사 브래드
나는 당신이 옳다고 믿습니다. 나는 double 형으로 정의 된 NSTimeIntervals를 저장하려고했습니다. 이는 기능이 어떤 경우에는 가까이 있고, 다른 곳에서는 일관성이 없었던 이유와 작은 수의 경우에 대해 잘 설명합니다. –