Comment on page
22.open与public
public class LedgerNavigationViewController: UINavigationController, StoryboardInitializable {
public override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
- Cannot inherit from non-open class 'LedgerNavigationViewController' outside of its defining module
- Overriding non-open instance method outside of its defining module
class MapNavigationController: LedgerNavigationViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
weak var selector: LocationSelector?
}
根据提示,将组件库中的
public
改成 open
,就可以了。open class LedgerNavigationViewController: UINavigationController, StoryboardInitializable {
open override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
平时每台用到
open
,这里遇到问题才很清楚get到他俩的不同,主要区别在继承的控制上。- public
- 只能在模块内部被继承
- open
- 可以再其他模块被继承
Last modified 2yr ago