利用runtime|利用runtime 简化友盟统计代码
给UIViewController添加一个分类,实现这个分类
【利用runtime|利用runtime 简化友盟统计代码】例如,命名为UIViewController+UMengAnalytics
#import "UIViewController+UMengAnalytics.h"
#import @implementation UIViewController (UMengAnalytics)+ (void)load {
// 系统原本的viewWillApper方法
Method viewWillAppear = class_getInstanceMethod(self, @selector(viewWillAppear:));
// 需要替换成能够输入日志的viewWillAppear
Method qy_viewWillAppear = class_getInstanceMethod(self, @selector(qy_viewWillAppear:));
// 原本的viewWillDisappear方法
Method viewWillDisappear = class_getInstanceMethod(self, @selector(viewWillDisappear:));
//需要替换成能够输入日志的viewWillDisappear
Method qy_viewWillDisappear = class_getInstanceMethod(self, @selector(qy_viewWillDisappear:));
// 两方法进行交换
method_exchangeImplementations(viewWillAppear, qy_viewWillAppear);
method_exchangeImplementations(viewWillDisappear, qy_viewWillDisappear);
}- (void)qy_viewWillAppear:(BOOL)animated {
//
[self qy_viewWillAppear:animated];
//
NSString *selfClass = NSStringFromClass([self class]);
//
[MobClick beginLogPageView:selfClass];
}- (void)qy_viewWillDisappear:(BOOL)animated {
//
[self qy_viewWillDisappear:animated];
//
NSString *selfClass = NSStringFromClass([self class]);
//
[MobClick endLogPageView:selfClass];
}@end
推荐阅读
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- 【万伽复利】什么是复利(如何利用复利赚钱?)
- iOS|iOS runtime应用整理
- 苹果手机如何利用库乐队自制铃声
- 产品设计的简化
- iOS开发需要掌握的原理
- “没有利用价值的人是很受冷遇的。”
- 可悲的好人
- 利用好你的暗时间,让成长无处不在