2013-02-17 3 views
0

이 내 코드입니다 :확인 ID의 NSNumber가 null

if (userLatPosition != nil) { 
    CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:[userLatPosition floatValue] longitude:[userLongPosition floatValue]]; 
    [self getLocationTextForUserIndex:j withLocation:userLocation]; 
} 

그것을 실행에 관하여, 이것이 내가 userLatPosition을 위해 무엇을보고 있습니다 :

userLatPosition = (NSNumber *) 0x02ab6678 (null) 

하나는 생각 문장이 거짓하는 경우는 그리고 그것은 if를 건너 뛸 것이다. 그러나 어떤 이유로 그것은 if 라인으로 들어간다.

누군가가 왜 그런지 알고 있는가? NSNumber에서 (null)에 대한 적절한 검사는 무엇입니까?

답변

1

userLatPosition은 이 아닌 NSNull입니다. NSNullnil과 같지 않습니다. 값을 허용하는 자리 표시자인 NSDictionary 또는 NSArray과 같은 컨테이너에 저장할 수있는 자리 표시 자입니다.

체크는 다음과 같이 보일 것이다 : 또한

if(userLatPosition && userLatPosition != [NSNull null]) 
{ 
} 

참조 : Using NSNull

+0

어떻게 것 같은 체크 모양? –

+0

@ user1461635 내 대답 편집 – JustSid