美文网首页
iOS nil、Nil、NULL和[NSNull null]

iOS nil、Nil、NULL和[NSNull null]

作者: Rumbles | 来源:发表于2019-04-22 17:16 被阅读0次

NULL 是宏,是对于 C 语言指针而使用的,表示空指针
nil 是宏,是对于 Objective-C 中的对象而使用的,表示对象为空
Nil 是宏,是对于 Objective-C 中的类而使用的,表示类指向空
NSNull 是类类型,是用于表示空的占位对象,与 JS 或者服务端的 null 类似的含意

nil. 等于 Nil nil就是把一个对象的指针置为空,只是切断了指针与内存中对象的联系,它对内存的释放没有什么作用

先release后设置nil

NSNull 有这个对象。但是内存里面都是0000000

    NSMutableArray *mArr1 = [NSMutableArray array];
    id strr;
    if (strr == nil) {
        strr = [NSNull null];
    }
    [mArr1 addObject:strr];
不会崩溃

NSNull存在的意义 一般用于表示集合中值为空的对象

 NSNull是个单例,只有一个方法null,也用来表示空值。但它出现在一些nil无法胜任的场景来替代nil来表示空值。比如NSArray和NSDictionary中nil代表数组或字典的末尾(即使nil不出现在末尾,也会将其切断,nil后面的值会丢失),此时只能用NSNull对象来表示空值:

    NSNull *nullValue = [NSNull null];
    NSArray *arrayWithNull = @[nullValue];
    NSLog(@" arrayWithNull: %@", arrayWithNull);

    NSString *s = @"";

    if ([s isEqual:[NSNull null]]) {
        NSLog(@"   ==  %@", ss);
    }

相关文章

网友评论

      本文标题:iOS nil、Nil、NULL和[NSNull null]

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