美文网首页iOS学习专题
nil、Nil、NULL、NSNull的区别

nil、Nil、NULL、NSNull的区别

作者: 哈哈哈_哈哈哈 | 来源:发表于2017-04-27 14:29 被阅读102次

    区别:

    nil:指向一个对象的空指针
    Nil:指向一个类的空指针
    NULL:指向其它类型(基本类型、C类型)的空指针
    NSNull:通常表示集合中的空值,如果定义了一个NSArray,为其分配了内存,又想设置其中的内容为空,则可以用[NSNULL null]返回的对象来初始化NSArray中的内容

    举例:

    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/vhmgzttx.html