为什么需要在公共访问控制viewController中覆盖viewDidload之前设置public
public class customViewController: UIViewController {
override public func viewDidLoad() {
super.viewDidLoad()
}
}
如果我取消公开,Xcode将给出错误警告!
错误消息是相当明确的:
覆盖实例方法必须与其覆盖的声明一样具有可访问性。
这意味着方法的访问级别一定不能低于其覆盖的方法。
例如,给定此类:
public class Superclass {
internal func doSomething() {
...
}
}
然后,您将无法doSomething
使用比少访问的方法来覆盖interal
。例如
public class Subclass : Superclass {
// error
private override func doSomething() {
}
}
但是,您可以重写方法并使之更易于访问:
public class Subclass : Superclass {
public override func doSomething() {
// You can even call the internal method in the superclass
super.doSomething()
}
}
该参考文档有很多细节上的这一点,但似乎离开这个关系的意义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句