IMP imp = imp_implementationWithBlock((void *)objc_unretainedPointer(^(id me,BOOL selected)

时间:2013-01-20 06:06:01

标签: objective-c-runtime

以下提供了一种在运行时向类添加方法的便捷方法:

imp_implementationWithBlock((void*) objc_unretainedPointer(^(id me, BOOL selected)

然后可以使用class_addMethod()添加该方法。这些实现最终是否会被缓存并使用快速跟踪方法调度系统?

1 个答案:

答案 0 :(得分:2)

我的直觉是肯定的,因为否则会使精致,一致和美丽的Objective-C运行时复杂化:)

此链接 - > http://kevin.sb.org/2006/11/16/objective-c-caching-and-method-swizzling/

似乎非常自信。在调用class_addMethod之后,它们都是类中的所有方法。据我所知,如果我错了,请纠正我,没有办法将它们与编译中的那些区分开来。