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

nil、Nil、NULL、NSNull的区别

作者: maniacRadish | 来源:发表于2016-06-02 16:09 被阅读29次

    转之 http://blog.csdn.net/tianjf0514/article/details/18054365
    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计算准确

    相关文章

      网友评论

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

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