为什么在公共访问控制viewController中覆盖viewDidload之前需要设置公共对象,所以>
public class customViewController: UIViewController { override public func viewDidLoad() { super.viewDidLoad() } }
如果我取消公开,Xcode将发出错误警告!
为什么要在公共访问控制viewController公共类中重写viewDidload之前设置public,所以UIUIController {
这意味着方法的访问级别不得低于其覆盖的方法。
例如,给定此类:
public class Superclass { internal func doSomething() { ... } }
然后您无法使用比
doSomething
更少访问的方法来覆盖interal
。例如
public class Subclass : Superclass {
// error
private override func doSomething() {
}
}
但是,您可以重写方法并使它more
可访问:
public class Subclass : Superclass { public override func doSomething() { // You can even call the internal method in the superclass super.doSomething() } }
reference documentation对此有很多详细信息,但似乎使这种关系含蓄了。
取自here
Public
访问权限使实体可以在其定义模块的任何源文件中使用,也可以在导入定义模块的另一个模块的源文件中使用。在指定框架的公共接口时,通常使用公共访问。Internal
访问权限使实体可以在其定义模块的任何源文件中使用,但不能在该模块外部的任何源文件中使用。通常,在定义应用程序或框架的内部结构时使用内部访问。Private
访问将实体的使用限制为包含在声明中。使用私有访问权限可以隐藏特定功能的实现细节。
[File-private
访问将实体的使用限制为自己定义的源文件。
您需要公共修饰符吗?您可以这样写:
class customViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
无警告
您的课程声明是:
public class customViewController: UIViewController
customViewController
到public
的访问权限(公开继承)写这个给你错误:
override func viewDidLoad() {
super.viewDidLoad()
}
这里发生的是方法的
默认访问级别
与继承性>>如何处理访问级别之间的不愉快交互。子类必须保留其超类方法的可访问性子类可以在任何地方直接使用的地方。否则,我们会违反了允许我们对待所有种类的替代原则
UIViewController
中的另一个UIViewController
。
Internal
访问权限使实体可以在其定义模块的任何源文件中使用,但不能在该模块外部的任何源文件中使用。通常,在定义应用程序或框架的内部结构时使用内部访问。customViewController
到public
的访问权限(公开继承)