美文网首页iOS开发
NULL,nil,Nil,NSNull之间的区别

NULL,nil,Nil,NSNull之间的区别

作者: mdiep | 来源:发表于2016-03-15 20:48 被阅读43次

    1.NULL

    NULL是C语言中的空指针对象

    char *c = NULL;
    

    2.nil

    nil 是Objective-C才会使用的,表示的OC对象的空字面量,对应的id类型的

    NSString *someStr = nil;
    NSNumber *someNum = nil;
    NSArray *someArr = nil;
    等....
    

    3.Nil

    Nil是Objective-C中类型的空字面量,对应的是Class类型

    Class someCls = Nil;
    Class arrCls = [NSArray class];
    Class strCls = [NSString class];
    

    4.NSNull

    [NSNull null]表示一个对象实例,但是这个实例表示的是空。主要原因是在OC集合中,如果需要放置一个空对象实例,是不能用nil来做为存储的。所以此时,可以用[NSNull null]实例来操作。

    **nil用来表示集合序列的结束。 **

    [NSArray arrayWithObjects:@"one", @"two", nil];
    

    正确的在集合加入空对象

    NSMutableArray *arr = [NSMutableArray new];
    NSNull *empty = [NSNull null];
    [arr addObject:empty];
    
    // [arr addObject:nil]; 这样是错误的
    

    参考链接

    相关文章

      网友评论

        本文标题:NULL,nil,Nil,NSNull之间的区别

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