ios - 即使我需要 TableViewControllers 的多重继承,如何在我的项目中建立这种设计?
问题描述
我仍然对继承感到困惑,所以我需要一种指导性的方法。我对 OOP 并不陌生,因此如果您愿意,可以在回答时详细说明。让我解释一下我想要做什么。这可能不是一个好方法,但我必须这样做,因为所有项目都依赖于这个结构。如果我出错了,很抱歉。
还有一个 MotherTableViewController 控制视图控制器的视图。我不能分享所有项目,因为这是一个私人仓库,所以如果你感到困惑,我很抱歉。我如何建立包括我的需求并包含以下代码..
class MotherView {
var sectionNumber: Int = 0
var name: String = ""
}
class ChildViewA: MotherView {
var viewProperty: String = ""
}
class ChilViewB: MotherView {
var viewProperty: String = ""
}
解决方案
我认为您的设计模式有点混乱,但根据我的理解,您可以使用类继承或协议。我认为您的困惑点依赖于多个继承点。请记住: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
}
推荐阅读
- aws-lambda - 无服务器 lambda 的 cors 问题
- java - 错误: com.nguyenhoanglam.imagepicker.activity 包不存在
- python - Django model.Model.'instance' 引发 AttributeError
- performance - Open MPI的性能:独立节点是否有时间积累?
- php - 如何在某些字符后从字符串的开头和结尾删除?
- reactjs - 使用reactjs上传时如何取消图片
- android - 为android返回缓存位置的本地地理定位做出反应
- android - Flutter 应用中带有 Lottie 动画的原生 android 闪屏
- javascript - 相机实时流 - 识别拍摄的白色背景上的矩形或线条
- python - 如何通过 Python 将列表插入 MySQL?