美文网首页
iOS_nil、Nil、NULL、NSNull的区别

iOS_nil、Nil、NULL、NSNull的区别

作者: VincentHK | 来源:发表于2018-01-25 15:51 被阅读0次

nil、Nil、NULL、NSNull的区别

   nil:指向一个对象的空指针

    Nil:指向一个类的空指针

NULL:指向其他类型(如:基本类型、C类型)的空指针

NSNull:通常表示集合中的空值

举例:

NSURL *url = nil;

Class class = Nil;

int *pointerInt = NULL;

NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];

为什么上面的array里面的空对象不直接用nil?

如果用nil,就会变成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil,  [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么数组到第二个位置就会结束。打印[array count]的话会显示1而不是4

所以[NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确

相关文章

网友评论

      本文标题:iOS_nil、Nil、NULL、NSNull的区别

      本文链接:https://www.haomeiwen.com/subject/tdbvaxtx.html