如何通过Objective C中的类别类中的参数解决方法调用?

时间:2015-09-14 10:25:01

标签: ios objective-c oop polymorphism objective-c-category

我有一个根类和子类的数量。 我还有一个DataManager类,它应该在各种类别中保存静态方法,这些方法对这个根类的特定子进行操作。

对于根类R来说,Child类是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。

但我没有看到多态行为。

也就是说,当期望调用DataManager + C2的Method1时,调用DataManager + C1中的一个,尽管调用本身是从DataManager + C2源文件启动的。 (调用者可以是任何DataManager类别 - 这是一种极端情况)。

位于同一类层次结构中的对象上的类别数如何解析函数调用?

PS: 再次注意,上面的方法Method1只在一个类(普通DataManager.h)的.h文件中显示,并以root类为参数。我假设这将确保使用子对象类型进行适当的调用,但它失败了。

0 个答案:

没有答案