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

vir*_*ndh 5 null objective-c

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

Mic*_*lum 15

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

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

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

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

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

NSNull [NSNull null]单例对象用于表示null