很多时候,当你入职一家新公司或者接触一个新项目的时候,往往不知道当前 App 的展示页面到底对应哪一段代码,经常需要通过查看工程结构或者搜索具体关键字来确定到底是哪一个 ViewController,所以当有时候需要临时找一些东西的话,定位效率还是比较低的,此时我就想是不是有一种更方便的方式来直接定位到当前页面所在的具体 ViewController ,这也是 DRPageTracker 开发的初衷
DRPageTracker https://github.com/Shevckcccc/DRPageTracker
其实这是一个非常简单的小项目,只有一个 Category ,原理也非常简单,就是通过 Objective-C 的运行时特性,给 UIViewController 的 viewDidAppear 方法里面加上一段代码,先执行原有的代码,再打印当前所在的 Class 名,由于是放在 Category 中,所以不需要主动 import 进来,只要能通过 pod install 安装进来就行了,非常轻量
pod 'DRPageTracker'
然后 install 一下就行了,不需要本地添加任何代码,就可以在控制台看到所有的 ViewController 展现顺序...
真的非常简单的一个小工具,比较适合新人熟悉旧代码时使用...
1
diyisoft 2016-07-22 15:06:16 +08:00
收藏了,貌似不错的功能
|
2
LINAICAI 2016-07-22 15:19:52 +08:00
意义不大,一般工程都有基类,直接基类打印就好了。
|
3
bienyur 2016-07-22 16:14:29 +08:00
hi~ :)
|
4
Shevckcccc OP @bienyur 啊哈,居然碰到熟人了...想不到你也上 V 站了 :D
|
6
bienyur 2016-07-22 16:29:35 +08:00
@Shevckcccc 好久没来了..竟然一进来就看到了你..这个工具也是我正需要的 感谢分享 hh
|
7
yjxjn 2016-07-22 16:32:12 +08:00
你们不 NSLOG 么??????
|
9
hyyy 2016-07-22 18:02:42 +08:00
@Shevckcccc
想法挺好的, AOP 编程原理,给个小小的建议,单单打印所在的 controller 名称其实有点 low 了,其实可以往 log 打印、页面 PV 统计方面延伸。^_^ |
10
mysteri0uss 2016-07-22 18:20:39 +08:00
|
11
Shevckcccc OP @LINAICAI 如果所有的市面上的工程都有基类,并且在每个基类(BaseViewController 、 BaseTableViewController 等)里面都有打印,那的确是不需要的,但是这并不能保证,而且就我目前经历过生产项目来看,有基类的工程还是偏少的,大部分已有工程并没有 BaseViewController ,这个主要取决于当时架构的工程师习惯,不能指望所有的开发都强制建一个基类,这个也需要成本
@yjxjn 如果每一个页面都要打一次 NSLOG ,那这个成本也是蛮高的... @hyyy 感谢建议,这个项目只花了我极少的时间.. 其实我最主要的方便查看当前的页面 VC ,这个功能达成了后续其实就没什么动力了,毕竟我的痛点已经解决了,至于如何美化,也许以后有时间会再考虑吧,或许你可以做个更好的 :D |
12
misaka15 2016-07-23 12:24:35 +08:00
利用 Runtime 不是很轻松就能实现嘛
|
13
PrideChung 2016-07-25 00:18:10 +08:00
其实用 Symbolic Breakpoint 断在 -[UIViewController viewDidAppear:] 就好了,绿色无污染用完就关掉
|
14
Tangdixi 2016-07-29 13:58:41 +08:00
AOP 大法好, 我也干过类似的事情
|