原先对此很迷惑,但是在网上看了很多文章后略有所得。

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

 

posted on 2015-12-15 23:47  川哥Garen  阅读(285)  评论(0编辑  收藏  举报