Question: why nil instead of null?
Answer: NULL and nil are equal to each other, but nil is an object value while NULL is a generic pointer value ( (void*)0 , to be specific). [NSNull null] is an object that's meant to stand in for nil in situations where nil isn't allowed. For example, you can't have a nil value in an NSArray.