- 子类继承重写父类
- runtime方法交换
method swizzling
(这题目主要考察)先在分类中添加一个方法,注意不能重写系统方法,会覆盖.
+ (NSString *)myLog { # 这里写打印行号,什么方法,哪个类调用等等 } #然后交换方法 + (void)load { NSLog("获取description方法地址") Method description = class_getClassMethod(self, @selector(description)); NSLog("获取myLog方法地址") Method myLog = class_getClassMethod(self, @selector(myLog)); NSLog("交换方法地址,相当于交换实现方式") method_exchangeImplementations(description, myLog); }
下回调用description方法时,实际上调用的是myLog的方法。
网友评论