一般来说,我听说使用组合比继承更好,但我并不总是很清楚如何做到这一点。我想创建一些在我的所有 View Controller 中通用的功能(我想监听 NSNotification,并在收到通知时调用一个方法)。
我的想法是创建一个 BaseViewController,每个 UIViewController 都从中扩展。出于多种原因,我很乐意通过继承以外的任何其他方式解决此问题
- 一些 View Controller 扩展了 UIViewController,一些扩展了 UITableViewController
- 如果我用 swift 编写它,objc View Controller 不能将它子类化
- comp over inheritance 的一般原因 - 更容易理解行为
我的问题是 - 如何在不将大量代码复制并粘贴到每个 View Controller 的情况下完成此操作?我显然可以在每个 View Controller 的 viewDidLoad 方法中插入一行,以添加一个监听器,并在每个 View Controller delloc 中插入一行,但我真的宁愿避免这种情况。是否有其他技术可以使它更清洁?
最佳答案
在 Swift 2.0 中,您可以使用带有默认方法实现的协议(protocol)。但在这种情况下,继承对我来说是最好的方法。
关于ios - iOS 基础 View Controller 的组合与继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083000/