objective-c - Objective-C 中的 NULL 与 nil

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

最佳答案

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)。

https://stackoverflow.com/questions/557582/

相关文章:

objective-c - 为什么 Objective-C 委托(delegate)通常被赋予属性分

ios - 从 UIView 到 UIViewController?

ios - 动态改变UILabel的字体大小

objective-c - 项目构建中的 CocoaPods 错误

ios - 具有 UITapGestureRecognizer 的 View 中的 UIButton

ios - 在 Objective-C 中检查空字符串的正确方法是什么?

ios - UIImageView 上的 UIGestureRecognizer

objective-c - 如何等待异步调度的 block 完成?

objective-c - Objective-C 中的方法语法

ios - Storyboard 中的 Modal 和 Push segue 有什么区别?