零和零 - 差异

时间:2013-11-29 15:06:58

标签: objective-c null

nilNil之间有什么区别? nil是未初始化的对象,关于Nil是什么?谢谢!

3 个答案:

答案 0 :(得分:2)

这是Class类型的零值。

所有NULLnilNilNUL'\0'00L,{{1 },0U0.0,...具有相同的值(至少在理智的系统上)。它们只对应不同的类型。

并明确说明:0.0f不是“未初始化的对象”,而是对象指针类型的(初始化)变量的值。

答案 1 :(得分:2)

  

nil是未初始化的对象

不,不是。它是指向对象的指针,无处可指。未初始化的对象需要nil

  

关于Nil

的内容

它类似,但不是对象,而是仅用于类。 (由于Objective-C中的类对象,您也可以使用nil作为Class类型的指针,但出于代码可读性的原因,不建议这样做。)

答案 2 :(得分:2)

加入一点迂腐......

nil是一个表示指向有效非对象的指针的值。从C的角度来看,它是指向无处的指针。但是,它在Objective-C的背景下具有特殊含义。因为Objective-C是 nil吃消息语言,所以将nil分配给对象指针将使该对象指针在所有后续消息传递操作中实际上成为无操作。

nil的值被定义为0,但是 - 从技术上讲 - 它不必由零位表示(尽管它实际上必须比较为等于零)。 Because standards

在实践中,nil将与Nikolai指示的完全相同。

Nilnil相同,但对于Class对象引用,提及H2C03。