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