零和零之间有什么区别

时间:2011-05-10 10:52:36

标签: objective-c xcode

在目标C?

他们真的是一回事吗?

如何测试对象是否为零?

3 个答案:

答案 0 :(得分:50)

Nilnil被定义为相同的东西(__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)

  • nil (全部为小写)是指向Objective-C对象的空指针。
  • Nil (大写)是指向Objective-C类的空指针。
  • NULL (全部大写)是指向其他任何内容的空指针。