原先对此很迷惑,但是在网上看了很多文章后略有所得。
1、Class和class
class指类,类是对象(object)的类型。比如 NSString *str = [[NSString alloc]init]; NSString就是一个class,是对象str的类型。
Class指类的类型,比如:Class aclass = [NSString class]; aclass就是一个类,就是NSString这个类,而Class就势aclass的类型。
2、Nil、nil、NSNull、NULL
nil是让指向对象的指针变为空,比如 NSString *str = nil,适用于对象
Nil是让指向类的指针变为空,比如 Class aclass = Nil
NSNull是一个类,一个代表空值的类。可以用类方法+(NSNull *)null创建一个空对象。一般用于集合中值为空的对象
因为 nil 被用来用为集合结束的标志,所以 nil 不能存储在 Foundation 集合里。
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", nil];
// 错误的使用
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:nil forKey:@"someKey"];
// 正确的使用
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:[NSNull null] forKey:@"someKey"];
NULL是让指向C类型的指针变为空,比如 int *a = NULL;
感谢这篇文章的指导 http://www.3lian.com/edu/2015/06-09/220517.html