0%
nil
- 表示空对象
- 所有
retain
相关的操作都会引起程序崩溃
1 2 3 4 5 6
| NSMutableArray *array = [NSMutableArray array]; NSMutableDictionary *dic = [NSMutableDictionary dictionary];
id obj = nil; [array addObject: obj]; // crash [dic setObject:obj forKey:@"name"]; // crash
|
Nil
- 完全等同于
nil
- 常用于类置空,表示一个类的空指针
1 2 3 4 5 6 7 8 9
| id obj = nil; if (obj == nil) { NSLog(@" obj 为空"); }
Class classA = Nil; if (classA == Nil) { NSLog(@"classA 为空类"); }
|
NULL
NSNull
- 通常表示集合中的类型
[NSNull null]
是一个对象,拥有有效的内存地址
1 2 3 4 5 6 7 8 9 10
| NSMutableArray *array = [NSMutableArray array]; NSMutableDictionary *dic = [NSMutableDictionary dictionary];
id obj = nil; if (obj == nil) { obj = [NSNull null]; }
[array adObject: obj]; // it's OK [dic setObject:obj forKey:@"name"]; // it's OK
|