【问题标题】:How to access functionality from two classes on the same hierarchy level?如何从同一层次结构级别的两个类访问功能?
【发布时间】:2015-07-09 21:17:01
【问题描述】:

我有一个多态类型的问题(其实我不完全确定这是多态,但看起来确实是这样。)下面是四个类的示意图——基类UITableViewCell,它的两个子类,以及其中一个子类的子类。

我需要UITableViewCell 的两个子类的功能,其中一个处理单元格的内容视图,而另一个处理单元格上可能发生的其他操作。其中一个子类是框架的一部分。 My Cell Class 基本上还需要“继承”(或任何技术词代替)Cell Subclass ACell Subclass B 的功能。 A + B 是 Objective-C 的子类; A 通过框架内置的模块可用性文件移植到 Swift; B是通过桥接头。我正在使用斯威夫特。有任何想法吗?

提前致谢。

【问题讨论】:

    标签: objective-c swift oop inheritance


    【解决方案1】:

    您不能从 Swift 中的多个类继承。当您看到诸如class AnotherSwiftClass: MyFirstProtocol, AnotherProtocol {} 之类的符号时,第二个参数实际上是一个协议。但是,您可以访问协议的功能。这是关于如何使用继承和协议的good source

    【讨论】:

    • 好的,我完全同意并理解您的回答。我真的在寻找一种迂回的方式来访问这两个类的功能。它们都不是协议...
    • 我不确定您是否愿意这样做。他们设计这样的继承是有原因的。我的建议是构建一个协议并将其填充为子类 A 的功能的包装器。每个方法都有一个条目等。或者您可以将子类 A 中的方法转换为类方法。如果不是太多工作,我最好的建议是重写子类 A 和子类 B 中的任何方法,尽管我不知道这些类有多么不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多