2012-10-29 3 views
0

, 나는 종종 할 것 같은이Objective-C에서 null을 테스트 하시겠습니까? AS3에서

나는이 같은 객체를 초기화 이해의 Obj-C에서
if(myObject != null) 
{ 
    //if we get here then myObject is ready to go 

} 
else 
{ 
    //myObject = null so we need to set it up 
} 

...

myObject = [[NSObject alloc] init]; 

하지만 비슷한 체크인을 할 것입니다 방법 obj-c, AS3에서하는 것처럼, 그리고/또는 그렇게하는 것이 가장 좋은 방법입니까? 객체가 이미 초기화되어 있는지 그리고 설정되어 있지 않은지를 알 수있는 다른 방법이 있을까요? 내가 AS3에서 개체에 끝났어요 때

그래서, 난 그냥

myObject = null; 

을 할 필요가 그리고 코드는 그 조건 코드에 관해서 다음에 그것을 설정하는 알고있다.

+1

시험 nil' 또는'NULL''에 대하여 -하지만 아니 었이 당신이 ** 읽고 수행 목표 - C의 튜토리얼 ** –

답변

4

당신도 똑같이 해. Objective-C의 널 포인터는 nil입니다.

if (myObject != nil) { 
    // do something 
} else { 
    // do something else 
} 

오브젝티브 C는 또한 부울 개체를 처리 할 수 ​​있습니다 (객체 인 경우 nil (0), 부울이 거짓이 될 것입니다), 그래서 당신은 너무 nil을 남길 수 있습니다 :

if (myObject) { 
    // do something 
} else { 
    // do something else 
} 
+2

을 " boolean으로 캐스팅 (cast to boolean) "은 완전히 정확하지는 않습니다. 2 번째 경우에는 캐스트가 발생하지 않으며 0이 아닌 숫자 값은 true로 처리됩니다. –

+2

사소한 단정 짓음 - 코드의 두 번째 비트에서 캐스팅하지 않습니다. C에서 0의 값은 false로 처리되고 0이 아닌 값은 true로 처리됩니다. 따라서 nil 객체 참조는 0이므로 false로 처리됩니다. 캐스팅은 수행되지 않습니다. – rmaddy

+0

예. 그렇다면 올바른 용어는 무엇입니까? – DrummerB

1

Objective-C에서 nil을 사용하십시오.

if (myObject != nil) { 
} 

심지어 쉽게 :

if (myObject) { 
} 
관련 문제