2012-10-29 35 views
0

在AS3中,我會經常做這樣的事情在Objective-C中測試null?

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' - 但不是在這個Objective-C的教程,你**做已經閱讀** – 2012-10-29 22:34:26

回答

4

你這樣做。 Objective-C中的空指針是nil

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

的Objective-C也可以把任何對象作爲一個布爾值(如果對象是nil(0),布爾會是假的),這樣你就可以離開了nil太:

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

「轉換爲布爾型「並不完全精確,在第二種情況下不會發生轉換,只是將非零數值視爲true。 – 2012-10-29 22:35:40

+2

Minor nitpick - 在你的第二位代碼中,這不是鑄造。在C中,任何0值都被視爲false,非零值被視爲true。所以一個零對象引用是0,所以它被視爲false。沒有鑄造完成。 – rmaddy

+0

是的。那麼,那麼正確的術語是什麼? – DrummerB

1

在Objective-C中使用nil

if (myObject != nil) { 
} 

或更容易:?

if (myObject) { 
}