2012-10-17 52 views
0

我已经用我想要的几个函数扩展了UIVIewController类。iOS - 在一个中扩展两个类

我想添加相同的功能到UITableViewController类,我的意思是,也扩展该类。

为了做到这一点,我必须将扩展viewController类中的所有方法复制到一对新的文件中,这些文件将用于扩展tableViewController类。对不起,我的无知,但有一种方法可以扩展两个类没有冗余?我的意思是,只有一个可以被viewController和tableViewController扩展文件继承的通用扩展类(?)?对不起,如果这是混淆。我的意思是那不是这个:

UIViewController+extensions.h 
UIViewController+extensions.m 

都含有大量的扩展方法的UIViewController类和

UITableViewController+extensions.h 
UITableViewController+extensions.m 

都含有大量的扩展方法的类的UITableViewController。

我想这一点:

GenericExtension.h 
GenericExtension.m 

这包含扩展方法

然后,

的UIViewController +扩展和的UITableViewController +扩展,既继承GenericExtension,所以我只是一个副本扩展方法。

这可能吗?

+0

这称为多重继承。 Objective-C没有这个。 – 2012-10-17 19:16:38

回答

4

如果不使用继承,但是,UIViewController类别(如您的文件命名建议),这些方法将在UITableViewController可用。确保在你的UITableViewController子类中导入你的头文件。

+0

duhhh !!!明显!我觉得我的大脑很累,我没有看到!谢谢。 – SpaceDog

0

选项1:

写(GenericExtension.h/.M)所有的方法使得类型的UIViewController

后来里面UIViewController

@interface RootViewController : Generic Extensions 

你可以这样做与UITableViewController因为UITableViewController来自UIViewController