谢谢各位, 现在贴出一些代码, 请大家看看有什么问题
Category 类:
@interface UIViewController (ActivityTrace)
+ (void)load {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[self jr_swizzleMethod:@selector(viewDidLoad)
withMethod:@selector(ri_viewDidLoad)
error:nil];
[self jr_swizzleMethod:@selector(viewDidAppear:)
withMethod:@selector(ri_viewDidAppear:)
error:nil];
[self jr_swizzleMethod:@selector(viewDidDisappear:)
withMethod:@selector(ri_viewDidDisappear:)
error:nil];
});
}
#pragma mark - Swizzled method
- (void)ri_viewDidLoad {
NSDate *start = [NSDate date];
[self ri_viewDidLoad];
NSDate *end = [NSDate date];
NSTimeInterval elapsed = [end timeIntervalSinceDate:start];
NSLog(@"Elapsed:%f(s)",elapsed);
if (!kIsRichAPMVIPUser || [[self class] _isClassNotTrackable:[self class]]) {
return;
}
}
... 省略
某个 ViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//! sleep 的这个值不会影响到 ri_viewDidLoad
sleep(2);
}