1

能够通过名称指定类对象而不是向其发送class消息会很方便。运行时已经知道id该类是什么,那么我为什么要每次都发送一条消息来检索它呢?

我的猜测是编译器会对其进行优化,以便这实际上不会导致发送消息。

必须有一些充分的理由(我寻求)来解释为什么语法必须是这种方式。

4

1 回答 1

0

这就是它的设计工作方式:类名是一种类型。对象是指向该类型的指针。单独的 tpye 不能用作值(常量、变量、表达式,无论您想将其用作...)。如果这对您来说不方便(呃,不应该!),您可以想出一些解决方法:例如,定义一个简短的宏:

#define C(name) [name class]

或者

#define C(name) objc_getClass(#name)

希望这可以帮助。

于 2012-06-16T05:18:57.963 回答