在 OC 中有几种空类型的写法,他们之间是有一定的区别的
nil: 对象为空。
(id)0, literal null value for Objective-C objects
定义某一个实例对象的值为空:
1 | NSObject * obj = nil; |
Nil: 类为空
(Class)0, literal null value for Objective-C classes
定义某一个类是空的:
1 | Class oneClass = Nil; |
NULL: 基本数据类型指针为空
(void *)0, literal null value for C pointers
C 语言的各种数据类型的空指针:
1 | int * pointerToInt = NULL; |
NSNull
[NSNull null], singleton object used to represent null
集合对象不能用 nil 来作为具体的一个值,所以用一个特定的对象 NSnull 来表示:
1 | NSMutableDictionary * dic = [NSMutableDictionary dictionary]; |