open, public, fileprivate, private, internal
1、internal
internal(默认访问级别,internal修饰符可写可不写)
* internal 访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
* 如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。
* 如果是 App 代码,也是在整个 App 代码,也是在整个 App 内部可以访问。
2、private
private : 访问级别所修饰的属性或者方法只能在当前类里访问。
(extension 里也可以访问任意修饰符的属性,包括 private 的属性)
3、fileprivate
fileprivate:访问级别所修饰的属性或者方法在当前的 Swift 源文件里可以访问。在当前文件外的其他文件就不可以访问。
一般情况下。比如要通过继承实现一些方法,可以供子类使用,或者是扩展使用,但是不想给外界访问,那么可以使用(但是继承的和扩展都需要在一个文件里面。在文件外面就无法访问了。)
4、open
open:可以被任何人访问。但其他 module 中不可以被 override 和继承,而在 module 内可以被 override 和继承
5、public
可以被任何人使用,包括 override 和继承。
网友评论