准备工作/ 创建Person类并声明两个方法
- (void) fristMethod;
- (void) secondMethod;
方法简单实现
- (void) fristMethod {
NSLog(@"fristMethod");
}
- (void) secondMethod {
NSLog(@"secondMethod");
}
控制器调用
/// 使用runtime来交换两个方法
- (void) rylsj_ExchangedMethod {
/// 获取方法
Method m1 = class_getInstanceMethod([self.persion class], @selector(fristMethod));
Method m2 = class_getInstanceMethod([self.persion class], @selector(secondMethod));
/// 交换
method_exchangeImplementations(m1, m2);
}
注意
method_exchangeImplementations 交换SEL 和 IMP 的对应关系
SEL -- IMP(才是指针!)
class_getInstanceMethod : 获取实例方法
class_getClassMethod 获取类方法