在objective-c中最後的結果是!variable
與variable==nil
一樣也是我想我在某處讀到iVars被初始化爲「無」(即o),但是我很難過似乎找不到我現在發現它的地方。如果我正確的是這個初始化無聲的一部分iVar或者是否鏈接到其他的東西像@property?做「!」和「無」給出相同的結果?
即做這些評估一樣...
if(!myObject) ...
和
if(myObject == nil) ...
乾杯加里。
編輯:希望更清晰。
在objective-c中最後的結果是!variable
與variable==nil
一樣也是我想我在某處讀到iVars被初始化爲「無」(即o),但是我很難過似乎找不到我現在發現它的地方。如果我正確的是這個初始化無聲的一部分iVar或者是否鏈接到其他的東西像@property?做「!」和「無」給出相同的結果?
即做這些評估一樣...
if(!myObject) ...
和
if(myObject == nil) ...
乾杯加里。
編輯:希望更清晰。
你的問題主題和問題,身體似乎會問不同的東西,所以......
要回答這個問題主題:沒有,!
和nil
不在都一樣。 !
是返回其操作數的邏輯否定(即!0
回報1
和!
與別的返回0),而nil
是0
宏來回答這個問題本身就是一個運營商:是的,!foo
和foo == nil
對對象變量給出相同的結果。是的,實例變量初始化爲0.所以是靜態變量和全局變量。
!
是C邏輯運算符,這意味着不(如& &裝置和和||裝置或)。
nil
是表達單位化對象指針的方式。
應用於指針,每當指針爲NULL
或nil
時,表達式的值爲TRUE。
最後,if(!myObject)
和if(myObject==nil)
具有相同的行爲。
在objective-c中,!
是一個布爾運算符,它返回布爾值或表達式結果的對立面。在下面的例子中,myObj真正將它的指針值作爲布爾值,零值或非零值進行計算。由於myObj是一個非零指針,因此它的計算結果爲true。 !myObj將返回相反的結果,在這種情況下它將返回false。
id myObj = nil;
int x = 0;
if (myObj)
x++;
對不起,我得到的是!myObject(給出TRUE或FALSE)和myObject == nil(給出TRUE或FALSE)? – fuzzygoat 2010-11-22 20:23:19