2011-09-05 8 views
3

다음 obj-c 코드에 문제가 있습니다.인터페이스 'NSDate'에 대한 포인터에 산술 연산을 사용합니다. 비 깨지기 쉬운 ABI에서 일정한 크기가 아닙니다

error: Semantic Issue: Arithmetic on pointer to interface 'NSDate', which is not a constant size in non-fragile ABI 

는 어떤 아이디어가 :

if (fabs(originalLocation.timestamp - ((CLLocation *)[lastLocations objectAtIndex:i]).timestamp) > constAverageLocationTimeout) 
{ 
    //do 
} 

엑스 코드는 ERR을 전송?

답변

6

프로그램을 컴파일 할 때 오류가 발생하면 프로그램을 조금 잘못 작성하면 훨씬 더 의미가 있습니다. 아마도 뭔가 같은 :

NSDate * orginalDate = originalLocation.timestamp; 
CLLocation * lastLocation = [lastLocations objectAtIndex:i]; 
NSDate * lastDate = lastLocation.timestamp; 

NSTimeInterval originalTime = [originalDate timeIntervalSinceReferenceDate]; 
NSTimeInterval lastTime = [lastDate timeIntervalSinceReferenceDate]; 
NSTimeInterval elapsed = fabs(originalTime - lastTime); 

if (elapsed > constAverageLocationTimeout) { 
    /* do */ 
} 

특히, timestamp 유형 NSDate의 속성입니다, 이러한 NSTimeInterval로하지 스칼라 번호입니다.

+0

네, 정말 도움이됩니다. 정말 고맙습니다. –

+0

@Merc 당신을 환영합니다. – justin

관련 문제