2012-03-07 73 views
2

我有两个类定义为相同的类,并具有相同的功能,但不同的定义。我想在某些情况下在运行时选择某个类别的特定功能。 obj c编译器是否维护某些类别的簿记。ios:是否有可能在运行时从相同类的两个定义的类别中选择一个

我在C++(虚函数/ Vtable)方面的思想是用多态来实现这些。我该如何解决目标C中的这种情况。

Class MyClass; 

File:Myclass+category1.h 
@interface MyClass (CategoryOne) 
-(void) printCategory() 
@end 

File:Myclass+category2.h 
@interface MyClass (CategoryTwo) 
-(void) printCategory() 
@end 

现在我将两个头文件都包含在MyClass.m中。在某些运行时条件下是否有可能自由选择“printCategory()”的特定定义?

回答

3

否。如果两个类别实现相同的方法,则未定义执行哪一个。

docs

有没有限制,你可以添加到一个类类别的数量,但每个类别名称必须是不同的,每个人都应该声明和定义一组不同的方法。

+0

谢谢!是的,我一直在阅读文档,并获得了这一点。请原谅我的懒惰开始;-)。 – 2012-03-07 21:39:38

相关问题