在swift

时间:2015-08-16 05:52:28

标签: swift generics

我有一些代码必须在所有UIViewController应用程序上都可用。所以我创建了一个class UIViewControllerExtension: UIViewController,它将被我想要用作UIViewController的每个类扩展。哪个工作正常。

现在我有新的屏幕,我必须使用UITableViewController,所以我不能扩展同一个类UIViewControllerExtension,并保持代码集中,所以我不想创建另一个{{1}使用相同的代码,并希望为这两种情况提供一个通用的解决方案。

我尝试了各种方法来扩展泛型类class UITableViewControllerExtension,所以我可以在两种情况下使用它,但它不起作用(因为它不会编译)。我在互联网上做了一些研究,但没有找到任何解决方案。有人有同样的问题并有解决方案吗?

我想如果会有像

这样的解决方案
<T:UIViewController>

用法:

class  CommonViewController<T:UIViewController>: T{    //I know it doesn't compile
//...
}

如果它解决了我的问题,我愿意接受任何其他解决方案。

修改:更多详情

1&GT;我想以常见的方式扩展class MyHomeScreenViewController: CommonViewController<UIViewController>{ } class MyItemListScreenViewController: CommonViewController<UITableController>{ } viewDidLoad()的{​​{1}}方法(不像以前那样重复代码)

2 - ;我想为UIViewController(和UITableViewController)添加一些支持方法,支持UIViewControllerUITableViewController等方法。

0 个答案:

没有答案