美文网首页
nil、Nil、NSNull、NULL

nil、Nil、NSNull、NULL

作者: 张_何 | 来源:发表于2018-08-16 17:28 被阅读0次

nil

表示空对象,每一个对象的引用计数为0时,系统会将这块内存释放掉,这时这个对象就为nil
对于这种空对象所有retain的操作都会引起程序的崩溃

    NSMutableArray *mArray = [NSMutableArray array];
    NSMutableDictionary *mDict = [NSMutableDictionary dictionary];
    NSObject *obj = [NSObject new];
    obj = nil;
    
    [mArray addObject:obj]; // 会引起崩溃
    [mDict setObject:obj forKey:@"key"]; // 会引起崩溃

NSNull

表示一个值为空的对象,并不是没有值,而是值为空,NSNull是继承自NSObject的

    NSMutableArray *mArray = [NSMutableArray array];
    NSMutableDictionary *mDict = [NSMutableDictionary dictionary];
    NSObject *obj = [NSObject new];
    obj = nil;
    if (obj == nil) {
        obj = [NSNull null];
    }
    
    [mArray addObject:obj]; // 不会引起崩溃
    [mDict setObject:obj forKey:@"key"]; // 不会引起崩溃

Nil

nil和Nil在使用上是没有严格限定的,也就是说凡是使用nil的地方都可以用Nil来代替,反之亦然。只不过从编程人员的规约中我们约定俗成地将nil表示一个空对象,Nil表示一个空类。参考代码如下

    id object = nil;
    Class class = Nil;
    if (object == nil) {
        NSLog(@"nil");
    }
    if (object == Nil) {
        NSLog(@"Nil=>nil");
    }
   
    if (class == Nil) {
        NSLog(@"Nil");
    }
    if (class == nil) {
        NSLog(@"nil=>Nil");
    }

输出结果

nil  
Nil=>nil   
Nil    
nil=>Nil   

NULL

我们知道Object-C来源于C、支持于C,当然也有别于C。而NULL就是典型C语言的语法,它表示一个空指针,参考代码如下:

int *ponit = NULL


参考文章

相关文章

  • NULL、nil、Nil 和NSNULL

    转:nil、Nil、NULL和NSNull区别NULL、nil、Nil这三者对于Objective-C中值是一样的...

  • IOS 处理空字符串

    一、区别: nil、Nil、NULL和[NSNull null]的区别 1.nil 当一个对象置为nil时,这个对...

  • Objective-C nil / Nil / NULL / N

    Objective-C nil / Nil / NULL / NSNull 和 BOOL / bool / Boo...

  • iOS nil、NULL、Nil 、NSNull的区别

    nil、Nil、NULL、NSNull的区别 nil:指向一个对象的空指针 Nil:指向一个类的空指针 NULL:...

  • nil、Nil、NULL、NSNULL

    nil、Nil、NULL、NSNull的区别 nil:是对objective c id 对象赋空值Nil:表示对类...

  • nil Nil NULL NSNull

    nil Nil NULL NSNull NULL是宏,是对于C语言指针使用的,表示空指针 nil是宏,是对于...

  • ios中的空值

    nil、Nil、NULL、NSNull的区别nil:指向一个对象的空指针Nil:指向一个类的空指针NULL:指向其...

  • nil、Nil、NSNull、NULL

    nil 表示空对象,每一个对象的引用计数为0时,系统会将这块内存释放掉,这时这个对象就为nil对于这种空对象所有r...

  • nil Nil NULL NSNull

    nil:指向oc中对象的空指针(对象),nil是一个指向不存在对象的指针 Nil:指向oc中类的空指针 NULL:...

  • nil/Nil/NULL/NSNull

    NULL 表示C指针为空 nil 表示指向Objective-C中对象的指针为空 Nil 表示Objective-...

网友评论

      本文标题:nil、Nil、NSNull、NULL

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