1

在我的实现中,我可以选择使用 class_addMethod 在运行时创建新方法,或者我可以依赖 forwardInvocation/NSProxy。当这两种方法都可以作为解决方案时,您更喜欢哪种方法以及如何确定?

4

2 回答 2

0

我更喜欢class_addMethod.

  1. 因为它比forwardInvocation(搜索方法列表,尝试forwardTarget,create NSInvocation,这确实是解析选择器的最后尝试)快得多
  2. 添加新方法比在一个地方处理所有动态方法调用更清楚。
于 2013-04-09T01:20:13.823 回答
0

class_addMethod是最好的选择。因为它可以使用方法搜索缓存来改进查找匹配方法地址。

参考自:BOOK“Effective Objective-C 2.0”第 12 期

于 2015-05-13T12:41:29.087 回答