在observeValueForKeyPath:ofObject:change:context:- 为什么文档使用NULL而不是nil在不指定上下文指针时使用?
observeValueForKeyPath:ofObject:change:context:
NULL
nil
nil应该只用来代替id,我们 Java 和 C++ 程序员会认为它是指向对象的指针。用于NULL非对象指针。
id
查看该方法的声明:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
Context 是一个void *(即 C 风格的指针),因此您肯定会使用NULL(有时声明为(void *)0)而不是nil(类型为id)。
void *
(void *)0