method-swizzling

1、swizzling 需要在 load() 方法中使用。为了保证 swizzling 只执行一次,需要使用 dispatch_once 。load 只要引用就会被调用。 initialize 是类或子类使用第一个方法前调用的。

2、使用场景:
1)在 dealloc 方法中,添加 NSLog ,提示哪个类被释放。
2)判断字典或数组是否为空。
3)追踪每一个控制器呈现给用户的次数,在 viewdidappear 方法中添加追踪代码。

3、Selector 是一个在运行时被注册(或映射)的 C 类型字符串。由编译器产生并且当类被加载时,进入内存时,由运行时自动进行名字和实现的映射。
Method 是一个不透明的用来代表一个方法的定义的类型。
Implementation

// 在运行时中,
Class (维护)  -> 
一个 Method:Selector 表  (Selector 指向) -> //method-swizzling 在这个位置改变 Selector 指向的 Implementation ,并且给之前的 Implementation 实现一个新的 Selector 。
Implementation 表

你可能感兴趣的:(method-swizzling)