在目标C?
他们真的是一回事吗?
如何测试对象是否为零?
答案 0 :(得分:50)
Nil
和nil
被定义为相同的东西(__DARWIN_NULL
),并且意味着表示无效(空指针,如NULL
)。 Nil
适用于类指针,nil
适用于对象指针(您可以在objc.h中阅读更多内容;搜索Nil
)。最后,您可以测试这样的空值:
if (object == nil)
或者像这样:
if (!object)
因为布尔评估会使包含对象的任何有效指针评估为true。
答案 1 :(得分:10)
nil
是指向对象的空指针的Objective-C常量,Nil
是相同定义的。实际上,它与C常量NULL
具有相同的值。测试这样的零对象:
if (fooObj == nil)
在我的代码中,我倾向于将nil
用于Objective-C对象,将NULL
用于其他C指针。这是个人品味的问题 - 目前nil和NULL可以在所有现有的Objective-C实现中进行比较。
答案 2 :(得分:3)