美文网首页iOS面试收集iOS Foundations
OC里面的空 nil,Nil,null,NSNull

OC里面的空 nil,Nil,null,NSNull

作者: 酷酷的哀殿 | 来源:发表于2016-03-28 14:21 被阅读144次

nil 和 Nil 都 Objective-C Runtime 里面的常量,它们的值都是 __DARWIN_NULL

在实际使用中,nil 用于指向空实例, Nil 用于指向空类

NULL 是 C 中空指针。它被定义为地址为零的常量指针。
# define NULL ((void*)0)

NSNull 类定义了一个用于代替无法使用空值的地方(比如NSArray,NSDictionary)。

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

需要注意的是,NSNull 实例,无法和No、false 等价。

下面是检测 NSNull的方法。

id aValue = [arrayWithNull objectAtIndex:0];

if (aValue == nil) {

  NSLog(@"equals nil");

}

else if (aValue == [NSNull null]) {

  NSLog(@"equals NSNull instance");

  if ([aValue isEqual:nil]) {

    NSLog(@"isEqual:nil");
    
  }
  
}

// Output: "equals NSNull instance"

// Output: "arrayWithNull: (<null>)"

参考文章

相关文章

  • Objective-C的空

    nil:OC为空 Nil:OC的类为空 NULL:c/c++的空指针 NSNull:对nil的包装 可以存储到数组...

  • NSObject——概念原理

    1、野指针 2、僵尸对象 3、nil/Nil/NULL/NSNull的区别 nil:指向oc中对象的空指针 Nil...

  • 各种nil,野指针,僵尸对象

    nil:OC中的对象的空指针 Nil:OC中类的空指针 NULL:C类型的空指针 NSNull:数值类的空对象 野...

  • 关于nil null一些小知识

    1.OC中的nil Nil NULL NSNull nil:是指OC中"对象"的空指针,所以基本数据类型和结构体不...

  • iOS 每天一道面试题

    同为菜逼,共同努力。 1.nil Nil NULL NSNull 区别。 nil:指向oc中对象的空指针,针对对象...

  • OC里面的空 nil,Nil,null,NSNull

    nil 和 Nil 都 Objective-C Runtime 里面的常量,它们的值都是 __DARWIN_NUL...

  • iOS 空值总结

    一、nil,Nil,NSNull及NULL的区别 1、nil:指向一个对象的空指针(对于OC中的对象而使用的)。 ...

  • Objective-c nil, Nil, NULL和NSNul

    在OC中可能经常会遇到 nil,Nil,NULL和NSNull,下面分析一下之间的区别: 一、nil:对象为空定义...

  • iOS 空值总结

    一、nil,Nil,NSNull及NULL的区别 1、nil:指向一个对象的空指针(对于OC中的对象而使用的)。 ...

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

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

网友评论

    本文标题:OC里面的空 nil,Nil,null,NSNull

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