objective-c - 将 method_exchangeImplementations 与 block_invoke 方法一起使用
问题描述
我正在尝试用以下代码替换方法实现
BOOL ct_hookMethod(Class originalClass, SEL originalSelector, Class swizzledClass, SEL swizzledSelector)
{
Method originalMethod = class_getInstanceMethod(originalClass, originalSelector);
Method swizzledMethod = class_getInstanceMethod(swizzledClass, swizzledSelector);
if (originalMethod && swizzledMethod)
{
method_exchangeImplementations(originalMethod, swizzledMethod);
return YES;
}
return NO;
}
它适用于类似的选择器-[xxxView runRequest:]
,但不适用于类似的方法-[xxView runRequest:]_block_invoke:
。
有谁知道如何钩住它们?
解决方案
推荐阅读
- vb.net - 如何在 vb .NET 中向列表视图添加两次之间的持续时间
- python - OSX 代理设置被完全忽略
- java - 如何计算 batch_step_execution 元数据表中的 Spring Batch 提交计数
- azure-language-understanding - 如何在 Azure 容器实例中为 LUIS 设置创建装载路径
- javascript - 如何更新 Firestore 数据库中的值
- discord - 为什么 youtube-dl 无法正确安装并无法与 pycharm 一起使用?
- flutter - 发布的 apk 出现“java.lang.RuntimeException:缺少类型参数”错误
- shell - 从多个自动密钥中删除用户的脚本
- reactjs - Material-UI 在组件之间传递数据
- reactjs - 如何创建与激活模式的表行对应的模式输入表单?