ObjC 里面的几个空值符号经常会差点把我搞死,这些基础的东西一点要弄清楚才行,以提高码农的基本素质。

nil

  • nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。

  • 例如:

    NSString *someString = nil;
    NSURL *someURL = nil;
    id someObject = nil;
    
    if (anotherObject == nil) // do something
    
  • 定义:

    // objc.h
    #ifndef nil
    # if __has_feature(cxx_nullptr)
    #   define nil nullptr
    # else
    #   define nil __DARWIN_NULL
    # endif
    #endif
    
    // __DARWIN_NULL …