в моем приложении я хочу использовать googleAnalytics. Чтобы использовать его, мне нужно расширить GAITrackedViewController, но проблема в том, что я уже расширяю GLKViewController, потому что в моем представлении есть приложение openGL. Так можно ли расширить свойства обоих контроллеров представления?
разработка iphone: возможно ли расширить более одного viewControllers?
Ответы (4)
Для аналогичного случая я просто создал подкласс UIViewController (в вашем случае GLKViewController). Этот подкласс обрабатывает отслеживание представления. Все «конкретные» ViewController расширяют этот пользовательский UIViewController вместо стандартного.
Затем вы можете, например, отслеживать просмотр вручную:
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker sendView: NSStringFromClass(self.class)];
Нет, в Objective-C нет множественного наследования. Вы должны написать подкласс GAITrackedViewController и подкласс GLKViewController отдельно, а также написать класс контроллера, который имеет экземпляр этих двух классов, координируя их.
Это невозможно, Objective-C не поддерживает множественное наследование. Вам следует взглянуть на этот вопрос: множественное наследование Objective-C
очень плохо расширять 2 класса даже на языки которые это позволяют, ибо можно получить 2 пути к своему "суперу" а это путь ко многим багам