用runtime实现类方法交换

面试有被问道runtime,概念性的就不讲了,具体来实现一个功能,交换类方法

先创建两个model,记得在.h中放出接口

用runtime实现类方法交换_第1张图片
image.png
用runtime实现类方法交换_第2张图片
image.png

实现时,先 #import

        Method method1 = class_getInstanceMethod([object class], @selector(methodOne));
        Method method2 = class_getInstanceMethod([TWO class], @selector(methodTwo));
        method_exchangeImplementations(method1, method2);
        
        object *o = [object new];
        [o methodOne];

打印结果

image.png

method_exchangeImplementations 交换IMP指针
利用runtime的特性,动态的交换IMP 指针.从而实现交换类方法

你可能感兴趣的:(用runtime实现类方法交换)