Objective-C中Nil与nil和Null的区别

时间:2013-09-01 03:01:29

标签: objective-c null

我是一个相对有经验的iOS开发人员,但有一件事总是困扰我,Nil(Capital)和nil(小写)和NULL(如果有的话)在性能和使用方面有什么区别?我绝对相信它们之间存在差异,否则为什么它们首先会被单独定义......

1 个答案:

答案 0 :(得分:15)

基本思想是对C指针使用NULL(对于C基元为0),对于Objective C实例为nil,对于Objective C类为Nil,对于NSNull使用NULL作为假装没有任何东西的方式你可以在数组或字典中存储任何实例。

有关此内容的详细说明以及下列值的来源,请访问:http://nshipster.com/nil/

  

NULL(void *)C指针的0字面空值

     

nil(id)Objective-C对象的0字面空值

     

Nil(Class)Objective-C类的0字面空值

     

NSNull [NSNull null]用于表示null

的单例对象