116. 简述什么是 method swizzling ? |
在 Objective-C 中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是 selector 的名字。 |
利用 Objective-C 的动态特性,可以实现在运行时偷换 selector 对应的方法实现,达到给方法挂钩的目的。 |
每个类都有一个方法列表,存放着方法的名字和方法实现的映射关系,selector 的本质其实就是方法名,IMP 有点类似函数指针,指向具体的 Method 实现,通过 selector 就可以找到对应的 IMP。 |
换方法的几种实现方式 利用 method_exchangeImplementations 交换两个方法的实现 利用 class_replaceMethod 替换方法的实现 利用 method_setImplementation 来直接设置某个方法的 IMP |
🚀🚀🚀🚀🚀🚀 |
117. 简述runtime 如何通过 selector 找到对应的 |
MySQL 存储引擎
2024-03-20 00:30:03 28 阅读