在objective-c中,每個非零對象的真值是否爲真?也就是說,是這樣的:在objective-c中,每個非零對象的真值是否爲真?
if (thing) NSLog(@"yes");
相同的:
if (thing != nil) NSLog(@"yes");
經驗上似乎是真實的,即使thing = @0
,但我不能找到文檔,實際上說這。
在objective-c中,每個非零對象的真值是否爲真?也就是說,是這樣的:在objective-c中,每個非零對象的真值是否爲真?
if (thing) NSLog(@"yes");
相同的:
if (thing != nil) NSLog(@"yes");
經驗上似乎是真實的,即使thing = @0
,但我不能找到文檔,實際上說這。
如果檢查0(false)或任何其他數字(true)。既然你的「東西」基本上是一個地址(因此是一個有效的數字),它將評估爲「真」。
是的,每個指針不是nil
(或NULL
)計算結果爲真,就像在良好的老長,這也是像NSNull
對象,這可能聽起來像他們將評估爲假的真。
確實如此。
@0
將是值爲0而不是地址0(零)的NSNumber
對象。
是的,因爲Objective-C是C上的圖層,所以應用相同的規則。
在C每個非NULL變量/指針的值爲真,因此這也是在Objective-C
另外@0
的情況下表示非空指針到一個NSNumber
因此正確地評估爲真。
((@0) && ([NSNULL null]) && (YES) && (thing) && (int a = 2))
分別計算爲TRUE
或YES
除非thing==nil