利用runtime 简化友盟统计代码

给UIViewController添加一个分类,实现这个分类

例如,命名为UIViewController+UMengAnalytics

#import "UIViewController+UMengAnalytics.h"
#import <UMMobClick/MobClick.h>

@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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,282评论 19赞 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,971评论 4赞 61
  • 早上航班延误177分钟,刚好没有用自己的卡订票,没有获得持卡银行赔付延误补偿。冥冥之中似乎早有安排,前面我一直用自...
    灰灰2017阅读 665评论 0赞 0
  • 2016.1.10 今天是礼拜天,还有三天就可以放寒假了。但是我双休日没有复习,所以我现在要复习到好晚,很难过,眼...
    万事屋门前的陵游阅读 470评论 1赞 1
  • 1:下载solr的安装包,目前最新版本是6.6.0 要求jdk1.8+ 百度网盘 2: 解压 tar -zxvf ...
    哈德丝阅读 501评论 0赞 1

友情链接更多精彩内容