【发布时间】:2010-09-14 11:00:22
【问题描述】:
作为一名正在阅读 Apple 的 Objective-C 2.0 文档的 Java 开发人员:我想知道“向 nil 发送消息”是什么意思——更不用说它的实际用途了。从文档中摘录:
Cocoa 中有几种模式 利用这一事实。这 从消息返回到 nil 的值 也可能有效:
- 如果方法返回一个对象,任何指针类型,任何整数标量 大小小于或等于 sizeof(void*)、浮点数、双精度数、 long double, 或 long long, then a 发送到 nil 的消息返回 0。
- 如果方法返回一个结构,由 Mac OS X ABI 函数定义 调用指南返回 注册,然后向 nil 发送一条消息 为每个字段返回 0.0 数据结构。其他结构数据 类型不会用零填充。
- 如果方法返回的不是上述值 类型消息的返回值 发送到 nil 是未定义的。
Java 是否让我的大脑无法理解上面的解释?或者有什么我遗漏的东西可以使它像玻璃一样清晰?
我确实了解 Objective-C 中的消息/接收器的概念,我只是对恰好是 nil 的接收器感到困惑。
【问题讨论】:
-
我也有Java背景,一开始我被这个好功能吓到了,但现在我觉得它非常可爱!;
-
谢谢,这是个好问题。你有没有看透它的好处?它给我的印象是“不是错误,而是功能”。我不断遇到错误,Java 只会给我一个例外,所以我知道问题出在哪里。我不乐意用空指针异常来在这里和那里保存一两行琐碎的代码。
标签: objective-c