我应该使用performSelector:当我也可以正常调用方法时?

时间:2010-04-24 11:50:14

标签: objective-c methods selector

我想在我通过[self delegate]的对象上调用一个方法。我知道它是哪个类,所以我可以导入类并正常调用它,但我也可以使用performSelector:,不需要导入我的类。我不需要将参数传递给方法。是的,我确实读过this。在这种情况下哪一个更好?

2 个答案:

答案 0 :(得分:2)

直接调用该方法更具可读性。当您需要更高阶的消息传递时,应保留performSelector:

严格地说,您不需要导入类来向其发送消息,因为消息调度是动态的而不是静态的,尽管您将收到编译时警告,该对象可能无法响应选择器。

答案 1 :(得分:0)

一般而言,反射操作(如performSelector:)的效率低于直接操作。不过我必须承认我对objC不是很熟悉。