我今天做了一件有点恶心的事。
我们所有的视图控制器都继承自两个不同的父视图控制器,比如说 XXXViewController 和 YYYViewController。XXXViewController 又继承自TrackedUIViewController
,这是 Google Analytics SDK 中提供的一个类,因此您的所有视图控制器都可以从它继承并轻松跟踪它们。
然而,YYYViewController 继承自不同类型的视图控制器。啊,这是一段我真的不想更改的开源代码。
这里有什么问题?我们无法跟踪任何 YYYViewController 子项,因为我们无法访问 TrackedViewController 中提供的方法,因为它们是私有的。
我不想修改 Google Analytics SDK 中提供的源代码。那我做了什么?创建一个公开这些方法的类别,只是为了避免编译错误。
这样做的明显缺点是它可能会破坏 GA 源代码更改,但它很容易检测到。
我想知道这样做我可能会面临哪些其他问题,以及你们是否能想到更好的方法。
谢谢