nil Nil NULL NSNull

来源:互联网 发布:程序员玩的手机游戏 编辑:程序博客网 时间:2024/04/25 01:17

nil Nil NULL NSNull


nil: A null pointer to an Objective-C object.
( #define nil ((id)0)  )

Nil: A null pointer to an Objective-C class.

NULL: A null pointer to anything else,  is for C-style memory pointers.
( #define NULL ((void *)0)  )

NSNull: A class defines a singleton object used to represent null values in collection objects (which don't allow nil values).

[NSNull null]: The singleton instance of NSNull.


针对与NSNull的小测试:(发现一个之前碰到的小问题,就是<null>,之前在数据解析完之后打印的默认空值符号)
     NSObject * obj1 = nil ;
    NSObject * obj2 = [[NSObjectalloc]init];
    NSObject * obj3 = [NSNullnull];
    NSObject * obj4 = [NSObjectnew];
    NSArray * array = [NSArrayarrayWithObjects:obj2,obj3,obj4,obj1, nil];
    NSLog(@"%d",[array count]);
    NSLog(@"%@",array);
    int i = 0;
    for(NSObject * obj in array)
    {
        if([obj isEqual:[NSNullnull]])
        {
            NSLog(@"obj[%d]是<null>",i);
        }
        i++;
    }
    
    // 打印信息
    /*
     2013-08-23 10:23:24.603 TestPro[1018:c07] 3
     2013-08-23 10:23:24.604 TestPro[1018:c07] (
     "<NSObject: 0x7566b10>",
     "<null>",
     "<NSObject: 0x75831f0>"
     )
     2013-08-23 10:23:24.604 TestPro[1018:c07] obj[1]是<null>
     */
针对之前碰到的问题可以做这样的判断:
  if([obj isEqual:[NSNullnull]])
   {
           
   }