在入手新的項(xiàng)目時很多類和項(xiàng)目文件層次都不清楚,最快熟悉項(xiàng)目的方法個人認(rèn)為是掛斷點(diǎn)分析代碼。但是如果是企業(yè)級項(xiàng)目或者模塊代碼量很大。不知道怎么入手或者想修復(fù)一個bug又不知道調(diào)用的哪個ViewController這種情況的話可以用runtime 給每個ViewController添加分類的功能打印調(diào)用的是哪個ViewController!
#import "UIViewController+Swizzling.h"#import@implementation UIViewController (Swizzling)
+ (void)load {
#ifdef DEBUG
Method vieWillAppear = class_getInstanceMethod(self, @selector(viewWillAppear:));
Method logViewWillAppear = class_getInstanceMethod(self, @selector(logViewWillAppear:));
method_exchangeImplementations(vieWillAppear, logViewWillAppear);
#endif
}
- (void)logViewWillAppear:(BOOL)animation {
NSString *className = NSStringFromClass([self class]);
NSLog(@"%@ will appear",className);
[self logViewWillAppear:animation];
}