準(zhǔn)備工作/ 創(chuàng)建Person類并聲明兩個(gè)方法
- (void) fristMethod;
- (void) secondMethod;
方法簡(jiǎn)單實(shí)現(xiàn)
- (void) fristMethod {
NSLog(@"fristMethod");
}
- (void) secondMethod {
NSLog(@"secondMethod");
}
控制器調(diào)用
/// 使用runtime來(lái)交換兩個(gè)方法
- (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 的對(duì)應(yīng)關(guān)系
SEL -- IMP(才是指針!)
class_getInstanceMethod : 獲取實(shí)例方法
class_getClassMethod 獲取類方法