(四)RunTime应用场景

305 阅读1分钟

1.给系统的方法添加额外的功能

  • 给系统的方法添加分类
  • 自己实现一个带有扩展功能的方法
  • 交换方法,只需要交换一次

2.动态添加属性

  • 给一个类添加属性,其实本质就是给这个类添加关联, 并不是直接把这个值得内存空间添加到类的内存空间
  • objc_setAssociatedObject
  • objc_getAssociatedObject

3.实现字典转模型的自动转换

  • 利用运行时,遍历模型中的所有属性, 根据模型的属性名,去字典中查找对应的值,给模型的属性赋值

4.method swizzling(方法交换)

  • 利用method_exchangeImplementations交换两个方法实现
  • 利用class_replaceMethod替换方法的实现
  • 利用method_setImplementation来直接设置某个方法的IMP