【问题标题】:Inheritance from Both NSViewController and NSImageView (Swift)继承自 NSViewController 和 NSImageView (Swift)
【发布时间】:2016-08-01 12:13:55
【问题描述】:

我应该如何处理在同一个项目中必须从 NSViewController 和 NSImageView 继承的情况?谢谢!

【问题讨论】:

  • 我不确定您所说的“在同一个项目中”是什么意思。如果你的意思是你想要一个类从 NSViewController 和 NSImageView 继承,你不能。 Swift 和 Objective-C 都不允许多重继承。
  • “在同一个项目中”我的意思是我有一个继承的类,例如从 NSViewController、NSTextViewDelegate 继承,它也应该从 NSImageView 继承。将最后一个类添加到我的“父”类列表中会产生错误,因为我也是从 NSViewController 继承的。我需要重写 NSImageView 类中包含的一些函数,因为我没有 NSImageView 的委托,所以我被卡住了......
  • 组合优于继承

标签: swift macos inheritance nsviewcontroller nsimageview


【解决方案1】:

Swift 和 Objective-C 都不支持您所需要的多重继承。

通常的格言是组合优于继承,这意味着您可以从能够处理该交互的对象组合您的类,而不是让一个类从它需要与之交互的每个类继承。

因此,与其从NSViewControllerNSImageView 继承,不如让视图控制器子类具有一个属性,该属性是NSImageView 子类的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2016-01-16
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多