【发布时间】:2013-01-08 13:45:55
【问题描述】:
在我的应用程序中,我想使用 googleAnalytics。要使用它,我必须扩展 GAITrackedViewController 但问题是我已经扩展了 GLKViewController 因为我的视图有一个 openGL 应用程序。那么是否可以扩展两个视图控制器的属性呢?
【问题讨论】:
标签: iphone objective-c ios uiviewcontroller glkit
在我的应用程序中,我想使用 googleAnalytics。要使用它,我必须扩展 GAITrackedViewController 但问题是我已经扩展了 GLKViewController 因为我的视图有一个 openGL 应用程序。那么是否可以扩展两个视图控制器的属性呢?
【问题讨论】:
标签: iphone objective-c ios uiviewcontroller glkit
对于类似的情况,我只是创建了 UIViewController 的子类(在您的情况下为 GLKViewController)。该子类处理视图的跟踪。所有“特定”的 ViewController 都扩展了该自定义 UIViewController,而不是默认的。
然后您可以手动跟踪视图:
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker sendView: NSStringFromClass(self.class)];
【讨论】:
不,Objective-C 中没有多重继承。您已经分别编写了 GAITrackedViewController 的子类和 GLKViewController 的子类,并编写了具有这两个类的实例的控制器类,并协调它们。
【讨论】:
不可能,objective-C 不支持多重继承。你应该看看这个问题:Objective-C multiple inheritance
【讨论】:
即使在允许的语言上扩展 2 个类也是非常糟糕的, 因为您可以通过两种方式获得“超级”,这是解决许多错误的一种方式
【讨论】: