翻译自:http://nshipster.com/method-swizzling/
上周的文章中我们讲了associated objects,由此开始了对Objective-C runtime的黑科技探索之旅。这周我们继续深入讨论一下Objective-C runtime里面最具争议的黑科技:method swizzling。
Method swizzling就是改变已经存在的selector的实现。这项技术得益于Objective-C的方法调用在运行时可以被改变这一特性,具体做法就是改变selectors在派发table里面的对应函数实现。
+load vs. +initialize
Swizzling 应该在 +load方法中执行.
dispatch_once
** Swizzling 应该包含在 dispatch_once方法中.**
Selectors, Methods, & Implementations
Invoking _cmd
Considerations
未完待续...
网友评论