在swift中,访问修饰符有五种,分别是:private、fileprivate、internal、public、open。其中fileprivate和open是swift 3 新添加的。由于之前的访问控制符是基于文件的,不是基于类的。这样会有问题,故swift 3 增加了两个修饰符,对原来的private、public进行了细分。
从高到低的排序如下:
open > public > interal > fileprivate > private
(1)private:修饰的属性或者方法只能在当前类中访问。
(2)fileprivate:修饰的属性或者方法只能在当前文件中访问。如果一个文件中含有多个类,也是可以访问的。
(3)internal:默认访问级别,可写可不写。
修饰的属性和方法在源代码的整个模块都可以访问。
如果是框架或库代码,则在整个框架都可以访问,框架以外是不可以访问的。
如果是App代码,则在整个App内部都是可以访问的。
(4)public:可以被任何代码访问。但其他模块不可以被override和继承,而在模块内是可以被override和继承的。
(5)open:可以被任何模块的代码访问,包括override和继承。