首页 > 解决方案 > 将 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:

有谁知道如何钩住它们?

标签: objective-chook

解决方案


推荐阅读