iOS - 将两个类扩展为一个

时间:2012-10-17 19:10:24

标签: iphone ios ipad

我已经使用我想要的几个函数扩展了UIVIewController类。

我想将相同的函数添加到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,所以我只有一个扩展方法的副本。

这可能吗?

2 个答案:

答案 0 :(得分:4)

如果您不使用继承而是使用UIViewController上的类别(正如您的文件命名所示),那么这些方法也可以在UITableViewController中使用。确保在UITableViewController子类中导入头文件。

答案 1 :(得分:0)

选项1:

在( GenericExtension.h / .m )中编写所有方法,使其类型为UIViewController

稍后在UIViewController

@interface RootViewController : Generic Extensions

您可以对UITableViewController执行相同的操作,因为UITableViewController来自UIViewController