Runtime交换方法

2020-07-06  本文已影响0人  Pantheraleo

开发使用场景:系统自带的方法功能不够,给系统自带的方法扩展一些功能,并且保持原有的功能。

方式一:继承系统的类,重写方法.

方式二:使用runtime,交换方法.

需求:给imageNamed方法提供功能,每次加载图片就判断下图片是否加载成功。

步骤一:先搞个分类,定义一个能加载图片并且能打印的方法

+ (instancetype)imageWithName:(NSString *)name;

步骤二:交换imageNamed和imageWithName的实现,就能调用imageName,间接调用imageWithName的实现。

核心方法class_getClassMethod,method_exchangeImplementations。

如果交换的是实例方法,用class_getInstanceMethod。

上一篇 下一篇

猜你喜欢

热点阅读