为什么Objective-C允许成功调用null对象?

时间:2013-10-08 10:20:00

标签: objective-c nullpointerexception null

这有什么用(除了非碰撞部分)? 我想知道这种设计背后的思维过程。

2 个答案:

答案 0 :(得分:5)

这是一个设计选择。在Objective-C术语中,一个“向对象发送消息”,而不是“调用方法”。所以你可以说,向一个不存在的对象发送消息根本就没有效果。如果你向一个不存在的人发出真实的信件,没有人会收到,没有人会回复或做任何事情。

答案 1 :(得分:2)

来自Java背景,我发现难以“制造我的”的一个原因是完全没有与方法调用相关的着名java.lang.NullPointerException

一旦你进入它,你会发现它是一个完全不同的方法,也不是一个坏方法:你发送一条消息,如果有人没有响应,程序不会崩溃。

这导致强制(在我看来当然)考虑返回价值,而不是担心存在的东西。