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 表
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 《学习之道》里常常提到建立组块这个词。第13章里谈到了搭建深层组块。那么什么是深层组块?为什么要建立深层组块,怎...
    super鹅阅读 323评论 0 0
  • 因小孩上学问题,导致需借钱还贷。在确认事情后,理清帐户可用的资金发现还差钱。向哥哥打电话直接了当的说明借钱理由,说...
    洹_bf2c阅读 205评论 0 0
  • 2018年1月3日,开工第二天。 正好,公司开始全员年底述职,复盘过往,展望未来,仿佛这样的日子里也更能激起大家的...
    L刘小四阅读 287评论 1 2
  • 年前便想写一写有关除夕守岁的文章,却一拖已过十五。 想起老人的话,过了腊八就是年,过完十五过完年。 十五已过,不再...
    卖回忆的小腊肉阅读 1,058评论 1 11