У меня есть корневой класс и количество дочерних классов. У меня также есть класс DataManager, который должен содержать статические методы в различных категориях, которые действуют на конкретный дочерний элемент этого корневого класса.
Скажем, для корневого класса R дочерними классами являются C1 и C2.
Для C1 у меня есть категория DataManager+C1.
Для C2 у меня есть категория DataManager+C2.
У меня есть базовый класс DataManager, в котором я объявил этот метод, откуда он доступен везде, и других объявлений нет:
//DataManager.h
+ (NSDictionary *) Method1 : (DataModelRoot*) R;
//Note that R is my root class. Individual class implementations belong to DataManager+C1.m, DataManager+C2.m etc.
Реализация Method1 находится в DataManager+C1, а также в DataManager+C2.
Но я не вижу полиморфного поведения.
То есть, когда ожидается вызов Методом1 DataManager+C2, вызывается вызов внутри DataManager+C1, хотя сам вызов инициируется из исходного файла DataManager+C2. (вызывающий может быть любой категорией DataManager, хотя это крайний случай).
Как количество категорий объектов, лежащих в одной иерархии классов, разрешает вызовы функций?
PS: Еще раз обратите внимание, что метод Method1, описанный выше, ПРЕДСТАВЛЯЕТСЯ ТОЛЬКО в файле .h одного класса (обычный DataManager.h) с корневым классом в качестве аргумента. Я предполагаю, что это обеспечит правильный вызов с использованием типа дочернего объекта, но это не удается.