我有一个自定义 UITableViewHeaderFooterView 类和一个自定义 UITableViewCell 类。这两个类共享一些方法和变量。我认为最好为共享方法和变量创建一个超类,而不是应付周围的事情。但是这两个自定义类已经有了不同的超类。
这样做的最佳做法是什么?
我有一个自定义 UITableViewHeaderFooterView 类和一个自定义 UITableViewCell 类。这两个类共享一些方法和变量。我认为最好为共享方法和变量创建一个超类,而不是应付周围的事情。但是这两个自定义类已经有了不同的超类。
这样做的最佳做法是什么?
您可以在 UIView 上添加一个类别,检查哪些类实际使用它们,但它不会真正解决状态。这些状态可能应该在委托中。
你也可以创建一个协议,但两者都需要实现。
除此之外,我可以想象他们可以共享同一个代表。
您在这里想要的是多重继承,Objective C(直接)不支持它。
协议在一定程度上解决了多重继承 (MI) 的缺失:从技术上讲,对于纯粹的“抽象”类,协议等同于 MI(参见下面关于“协议”的答案)。
您可以使用其他三个选项:
消息转发(特别是转发和多重继承)(http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html)