Method Swizzling

翻译自: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

未完待续...

你可能感兴趣的:(Method Swizzling)