2011-08-02 2 views
5

iOS 4.3 시뮬레이터에서 다음 코드는 GCC 4.2에 매우 작은 숫자 인 1e-700을 반환합니다. 그러나 LLVM-GCC 4.2에서 예상대로 작동합니다. 어떤 아이디어?- [NSDate timeIntervalSinceDate :]는 GCC 4.2에서 매우 작은 숫자를 반환하지만 iOS4.3 시뮬레이터의 LLVM-GCC 4.2에서 예상대로 작동합니다.

NSDate *selectedDate = self.datepicker.date; // guaranteed to be before now 
NSTimeInterval interval = [nowDate timeIntervalSinceDate:selectedDate]; 

이 값은 여기서 각 실행에 따라 변화하지만, 출력의 설정 예이다

되어 selectedDate : 1981-06-02 16:27:34 +0000

nowDate : 2011-08-03 05:18:36 +0000

간격 : 5.489011535689859e-277

안으로 [nowDate timeIntervalSinceDate:selectedDate] 실행 GDB : 952001462.97236204 (예상 값입니다)

+0

GCC 4.2에서'interval'에 1e-700이 포함되어 있다고 어떻게 결정합니까? –

+0

다음 명령을 사용하여 GDB에서 인쇄합니다 : p (NSTimeInterval) interval –

+0

이 테스트를 수행 할 때 selectedDate 및 nowDate의 값을 표시 할 수 있습니까? –

답변

0

이것은 GCC의 버그 일 수 있습니다. 나는 당신이 버그 보고서를 작성하고 애플이 무엇을 말해야하는지 생각해야한다고 생각한다.

+1

감사합니다. 나는 그것을보고했다. –

+0

iOS 5.1을 재시험 했으므로 문제를 재현 할 수 없습니다. –

-1

예상치 못한 값은 오버플로입니다.

관련 문제