学习笔记-nil NULL NSNull Nil的区别

nil--表示实例对象为空  例如  NSString * string = nil;
    
                                      NSArray * array = nil;    我们对于nil的调用 不会产生crash或者异常。例如,一个数组release了,但是没有nil,调用它或直接crash的,但是nil掉的话,就不会crash。

NULL --(只是一个值)可以用在c语言的各种指针上   char * aa = NULL;
    
                                                  int mm = NULL;

Nil --表示一个空类。 Class rootViewController = Nil;

NSNull -- 它是一个单例类,.h里面 + (NSNull *)null; 它定义了一个单例类对象用来表示集合对象里面的空值。例如我的目的是 一个字典里面包含两个键值,最后的键值的值为空。

                                                                                                                   1. NSNumber * num = [NSNumber numberWithInt:1];
    
                                                                                                                   NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:num,@"1",nil,@"2", nil];打印dic  只剩下一个键值,{
                                                                                                                                                                                                                                                                                         1 = 1;
                                                                                                                                                                                                                                                                                                 }

                                                                                                                   2. NSNumber * num = [NSNumber numberWithInt:1];
  
                                                                                                                   NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:num,@"1",NULL,@"2", nil];打印dic  只剩下一个键值,{
                                                                                                                                                                                                                                                                                         1 = 1;
                                                                                                                                                                                                                                                                                                 }

                                                                                                                   3. NSNumber * num = [NSNumber numberWithInt:1];
  
                                                                                                                   NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:num,@"1",[NSNull null],@"2", nil];打印dic  只剩下一个键值,{
                                                                                                                                                                                                                                                                                       1 = 1;  

                                                                                                                                                                                                                                                                                       2 = "<null>";
                                                                                                                                                                                                                                                                                                 }

实例说明   要想保证两个键值的要求,只有[NSNull null] 可以做到,这就是[NSNull null]与nil   NULL的区别。

 

posted @ 2015-10-14 09:53  *宁宁  阅读(198)  评论(0)    收藏  举报