【发布时间】:2011-05-28 20:34:12
【问题描述】:
我想在 Objective-C 中实现多重继承 即我有一个“Sub”类,它需要是“Super”类的子类以及 UITableViewController
如何在 Obj-C 中实现相同的目标?
【问题讨论】:
标签: objective-c
我想在 Objective-C 中实现多重继承 即我有一个“Sub”类,它需要是“Super”类的子类以及 UITableViewController
如何在 Obj-C 中实现相同的目标?
【问题讨论】:
标签: objective-c
Objective-C 不支持多重继承。您可以使用协议、组合和消息转发来实现相同的结果。
协议定义了对象必须实现的一组方法(也可能有可选方法)。组合基本上是包含对另一个对象的引用并在需要它的功能时调用该对象的技术。消息转发是一种允许对象将消息传递给其他对象的机制,例如,通过组合包含的对象。
苹果参考:
【讨论】:
Objective-C 中没有多重继承。不过,您可以尝试通过组合来解决您需要解决的问题。
类似这样的:
@interface MyViewController : UIViewController {
Sub *mySubComponent;
}
@property (nonatomic, retain) Sub *mySubComponent;
// you can write wrapper methods here to call mySubComponent methods/messages
【讨论】: