例如,在Cocoa Framework中,除非您实现它们,否则大多数触摸方法都不会执行任何操作。如果在我的程序中所有类似的方法中,我在自定义实现之前调用[super method:],那会不会导致实际的减速(百分之一秒)?
也许是一个愚蠢的问题...但我问,因为我不知道消息成本的低级细节。
答案 0 :(得分:2)
简答:不。
答案很长:Obj-C运行时的消息非常快。编译器优化调用,运行时优化调度。如果您在紧密循环中调用消息数百万次来构建图形几何体,那么您将考虑其影响。否则,不,尤其用于调用超级用户输入等内容,根据定义,其频率低于系统的其他簿记。
为感兴趣的人练习:使用Shark描述您的应用并检查它是否有效。消息调度程序的名称类似于objc_msgSend
。