这可能是一个愚蠢的问题,但我没有找到任何相关信息。
假设我程序中的几个类派生自'MySubView',它来自另一个类UIViewController。
我会这样声明:
@interface NewViewController : MySubView {
// code ...
}
@end
将来客户希望进行更改,并希望使用表格查看另一个视图。所以我需要创建另一个名为MySubTableView的类,它是一个从MySubView子类化的UITableViewController。
我认为如果我可以这样做会更容易:
@interface NewViewController : UITableViewController : MySubView {
// code ...
}
@end
但这不起作用。
有没有办法用Xcode做到这一点,还是我必须专门制作这个类?
编辑:
我不是在寻找多重继承。直接继承层次结构如下:
NewViewController
的UITableViewController
MySubView
UIViewController
答案 0 :(得分:2)
不,Objective-C不支持声明那种(垂直)继承链。您只能指定直接超类。
即使有可能,也会出现调用正确的初始值设定项等问题,因为它们不会自动调用。考虑像A : B : C
这样的层次结构 - 现在您可以使用例如B
初始化[super init]
。 A
初始值设定项中的B
,但C
如何知道您希望它为{{1}}调用的初始值设定项?
答案 1 :(得分:1)
Objective-C不支持多重继承...但Objective-C程序员很少会错过它,因为您可以使用Categories来完成许多相同的任务。阅读Objective-C类别。