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]])
{
}