首页 > 解决方案 > 即使我需要 TableViewControllers 的多重继承,如何在我的项目中建立这种设计?

问题描述

我仍然对继承感到困惑,所以我需要一种指导性的方法。我对 OOP 并不陌生,因此如果您愿意,可以在回答时详细说明。让我解释一下我想要做什么。这可能不是一个好方法,但我必须这样做,因为所有项目都依赖于这个结构。如果我出错了,很抱歉。

还有一个 MotherTableViewController 控制视图控制器的视图。我不能分享所有项目,因为这是一个私人仓库,所以如果你感到困惑,我很抱歉。我如何建立包括我的需求并包含以下代码..

class MotherView {
    var sectionNumber: Int = 0
    var name: String = ""
}

class ChildViewA: MotherView {
    var viewProperty: String = ""
}

class ChilViewB: MotherView {
    var viewProperty: String = ""
}

在此处输入图像描述

标签: iosobjective-cswiftxcodeinheritance

解决方案


我认为您的设计模式有点混乱,但根据我的理解,您可以使用类继承或协议。我认为您的困惑点依赖于多个继承点。请记住:Swift 不支持多重继承。如果您愿意,可以查看此答案 https://stackoverflow.com/a/43087828/11982371


我认为您可以将这个模型 A 或模型 B 用于您的案例;

A型

class MotherTableViewController {
}

class ChildViewAController: MotherTableViewController {
}

class ChilViewBController: MotherTableViewController {
}

B型

protocol MotherTableViewControllerDelegate {
    var viewProperty: String
    var image: Image
    var name: String
}


class MotherTableViewController {
    func playWithChildren(obj: MotherTableViewControllerDelegate)
}

class MotherView: MotherTableViewControllerDelegate {
}

class ChildViewA: MotherView {
}

class ChilViewB: MotherView {
}
...

另外,如果你说你在某个时候崩溃了,不要忘记你的手机注册

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.register(cellType: MotherViewCell.self) // basetableview referenced from your MotherViewTableView
    
}

推荐阅读