update 2015.7.23 今天看了《Effective Objective-C 2.0》第13条: 用“方法调配技术”调试“黑盒方法”中提到的和UIViewController-Swizzled一样。
UIViewController-Swizzled是一个非常简单的类库,大概只有100多行代码,实现的功能也比较简单:显示一个UIViewController的时候,log一下。
看了一下源代码,原理是hook UIViewController
的viewDidAppear:
方法:
每个UIViewController就想浏览器中的一个页面,这样我们就能监控用户的整个页面跳转流程,做一个统计工具应该比较简单了吧。另外,我们还可以监控更多的方法,比如按钮点击等,配合MGJTempStore
做一个统计工具的前端,应该不是一件困难的事情了。
##TODO:
既然是监控,最好能做到动态下发规则。比如监控[XDTableViewController didSelectRowAtIndexPath:]方法。理论上,配合JSPatch应该是可以的。抽空研究一下,做一款这样的工具。