NULL / nil / Nil / NSNull
2017-09-11 本文已影响8人
夜幕青雨
C 用 0 来作为不存在的原始值,而NULL作为指针,这在指针环境中相当于 0。
Objective-C 在 C 的表达不存在的基础上增加了nil。nil 是一个指向不存在的对象指针。虽然它在语义上与NULL 不同,但它们在技术上是相等的。
在框架层面,Foundation 定义了 NSNull,即一个类方法 +null,它返回一个单独的 NSNull 对象。NSNull 与 nil 以及 NULL 不同,因为它是一个实际的对象,而不是一个零值。、
在 Foundation/NSObjCRuntime.h 中,Nil 被定义为指向零的类指针。它并不常常出现,但至少值得注意。
![](https://img.haomeiwen.com/i2118879/b82048bbbb2df7be.png)