小编典典

Objective-C 中的 NULL 与 nil

all

observeValueForKeyPath:ofObject:change:context:-
为什么文档使用NULL而不是nil在不指定上下文指针时使用?


阅读 111

收藏
2022-07-28

共1个答案

小编典典

nil应该只用来代替id,我们 Java 和 C++ 程序员会认为它是指向对象的指针。用于NULL非对象指针。

查看该方法的声明:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
    change:(NSDictionary *)change context:(void *)context

Context 是一个void *(即 C 风格的指针),因此您肯定会使用NULL(有时声明为(void *)0)而不是nil(类型为id)。

2022-07-28