iOS runtime exchange methods
阿新 • • 發佈:2017-08-03
color blog assert obj ins cls ati ldm imp
void bd_exchangeInstanceMethod(Class aClass, SEL oldSEL, SEL newSEL); void bd_exchageClassMethod(Class aClass, SEL oldSEL, SEL newSEL);
#import <objc/runtime.h> void bd_exchangeInstanceMethod(Class aClass, SEL oldSEL, SEL newSEL) { Method oldMethod = class_getInstanceMethod(aClass, oldSEL); assert(oldMethod); Method newMethod = class_getInstanceMethod(aClass, newSEL); assert(newMethod); method_exchangeImplementations(oldMethod, newMethod); } void bd_exchageClassMethod(Class aClass, SEL oldSEL, SEL newSEL) { Method oldClsMethod = class_getClassMethod(aClass, oldSEL); assert(oldClsMethod); Method newClsMethod = class_getClassMethod(aClass, newSEL); assert(newClsMethod); method_exchangeImplementations(oldClsMethod, newClsMethod); }
iOS runtime exchange methods