在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