0

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

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

4

2 回答 2

0

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

你也可以创建一个协议,但两者都需要实现。

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

于 2013-06-10T00:28:16.247 回答
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

于 2013-06-10T04:30:31.197 回答