objective-cxcode

What's the Difference Between nil and Nil


In Objective C?

Are they really the same thing?

How to test that an object is nil?


Solution

  • Nil and nil are defined to be the same thing (__DARWIN_NULL), and are meant to signify nullity (a null pointer, like NULL). Nil is meant for class pointers, and nil is meant for object pointers (you can read more on it in objc.h; search for Nil). Finally, you can test for a null value like this:

    if (object == nil)
    

    or like this:

    if (!object)
    

    since boolean evaluations will make any valid pointer that contains an object evaluate to true.