iOS runtime exchange methods
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);
}
页:
[1]