nil, NULL 和 NSNull 的区别

nil

nil 有两种类型: nil 和 Nil

. nil
  Defines the id of a null instance.
. Nil
  Defines the id of a null class.

判断一个对象是否为空 || 将一个对象手动设置为空 -> id obj = nil;
值得注意的是:当向nil发送消息时,返回NO,不会有异常,程序将继续执行下去;

NULL

A null pointer to anything else,  is for C-style memory pointers.

用于对非对象指针赋空值,比如C指针

NSNull

NSNull 是一个类 其中只包含一个单例方法
+ (NSNull *)null
返回一个 NSNull 对象 用在 字典数组中担当 空值的作用。

    NSDictionary *dict = @{@1:@2, @2:[NSNull null]};
    NSArray *array = @[@1, @3, [NSNull null], @5];

你可能感兴趣的:(nil, NULL 和 NSNull 的区别)