两个不同的类继承自Objective-C中的同一个超类

时间:2013-06-09 22:41:07

标签: objective-c oop inheritance subclass superclass

我有一个自定义的UITableViewHeaderFooterView类和一个自定义的UITableViewCell类。这两个类共享一些方法和变量。我认为为共享方法和变量创建一个超类更好,而不是应对周围的事情。但是这两个自定义类已经有不同的超类。

这样做的最佳做法是什么?

2 个答案:

答案 0 :(得分:0)

您可以在UIView上添加一个类别,检查实际使用它们的类,但它不会真正解决状态。 这些国家应该在代表中。

您也可以创建一个协议,但两者仍然需要实现。

除此之外,我可以想象他们可以共享同一个代表。

答案 1 :(得分:0)

这里你想要的是多重继承,Objective C不支持(直接)。

  

协议解决了某些人缺少多重继承(MI)的问题   范围:从技术上讲,协议纯粹等同于MI   “抽象”类(参见下面“协议”的答案)。

您可以使用其他三个选项:

  

协议   (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html

     

组合物   (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html%23//apple_ref/doc/uid/TP40002974-CH6-SW15

     

消息转发(特别是转发和多个   遗产)   (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html