In observeValueForKeyPath:ofObject:change:context:
- why do the docs use NULL
instead of nil
when not specifying a context pointer?
nil
should only be used in place of an id
, what we Java and C++ programmers would think of as a pointer to an object. Use NULL
for non-object pointers.
Look at the declaration of that method:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context
Context is a void *
(ie a C-style pointer), so you'd definitely use NULL
(which is sometimes declared as (void *)0
) rather than nil
(which is of type id
).