sorted by: DESC
private
: 只能在本类的作用域且在当前文件内能访问, extension 中只是扩展,也是本类中,只要在一个 .swift
文件内
fileprivate
: 能在当前文件内访问到,不管是否在本类的作用域,只要在当前 .swift
文件类都可以访问
如果子类跟父类不再同一个文件下是不能够使用fileprivate修饰的方法或属性的; 且private修饰的方法和属性无论是否跟父类在同一个文件文件内,都无法使用。
internal
: 默认访问级别, 同一个module或者target 中
public
: 可以被任何人访问。但其他module中不可以被override和继承,而在module内可以被override和继承。
open
: 可以被任何人使用,包括override和继承。
当前类(private)、当前swift文件(fileprivate)、 当前模块(internal)、其它模块(open、public)
get 是 internal set 是private,同module可以访问,不可以修改 ` private(set) var age:Int = 1 ` get 是public set 是private,外部module可以访问,不可以修改
` public private(set) var age:Int = 1 `