码迷,mamicode.com
首页 > 其他好文 > 详细

OC中Nil、nil、NULL、NSNull、class、Class

时间:2015-12-16 00:26:56      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

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

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

 

OC中Nil、nil、NULL、NSNull、class、Class

标签:

原文地址:http://www.cnblogs.com/chuangege/p/5049921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!