nil
和Nil
之间有什么区别? nil
是未初始化的对象,关于Nil
是什么?谢谢!
答案 0 :(得分:2)
这是Class
类型的零值。
所有NULL
,nil
,Nil
,NUL
,'\0'
,0
,0L
,{{1 },0U
,0.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指示的完全相同。
Nil
与nil
相同,但对于Class对象引用,提及H2C03。