美文网首页
method swizzle

method swizzle

作者: 今年27 | 来源:发表于2020-11-27 14:56 被阅读0次
+(void)load{
    NSError* error = nil;
    [self jr_swizzleMethod:@selector(kde_willDealloc) withMethod:@selector(willDealloc) error:&error];
}

-(BOOL)kde_willDealloc{
   return NO;
}

+ (BOOL)jr_swizzleMethod:(SEL)origSel_ withMethod:(SEL)altSel_ error:(NSError**)error_ {

    Method origMethod = class_getInstanceMethod(self, origSel_);
    if (!origMethod) {
        return NO;
    }

    Method altMethod = class_getInstanceMethod(self, altSel_);
    if (!altMethod) {
        return NO;
    }

    class_addMethod(self,
                    origSel_,
                    class_getMethodImplementation(self, origSel_),
                    method_getTypeEncoding(origMethod));

    class_addMethod(self,
                    altSel_,
                    class_getMethodImplementation(self, altSel_),
                    method_getTypeEncoding(altMethod));

    method_exchangeImplementations(class_getInstanceMethod(self, origSel_), class_getInstanceMethod(self, altSel_));
    return YES;
}

相关文章

  • iOS Method Swizzle 源码分析

    iOS Method Swizzle 代码 平常我们用的方法都是method_exchangeImplementa...

  • Method Swizzle

    1、AOP编程思想 1.1、AOP是什么 AOP(Aspect Oriented Programming)直译为面...

  • Method Swizzle

    在Swift中也可以用Objective-C运行时来进行Swizzle, 如果想在一个app中监听所有的点击事件,...

  • method swizzle

  • Method Swizzle

    1.每个类里有一个dispatch table,将方法的名字(SEL)跟方法的实现(IMP:指向函数的指针)一...

  • iOS 黑魔法之Method-Swizzling

    Method-Swizzle Method Swizziling 是OC运行时给我们的用于交换Method的实现方...

  • 2018-01-08

    void Swizzle(Class c, SEL origSEL, SEL newSEL) { Method o...

  • iOS Swizzle Method

    1.实例方法交换 2.类方法交换 3.class一点总结 项目地址:https://github.com/hkkh...

  • iOS Swizzle method

    在理解这一套东西之前,我们先理清楚几个函数的意义 1.class_addMethod(aClass, origin...

  • iOS:load方法能不能被hook?

    今天我们讨论的hook方式仅仅是指Method Swizzle,fishhook、Cydia Substrate ...

网友评论

      本文标题:method swizzle

      本文链接:https://www.haomeiwen.com/subject/xluxwktx.html