Swift 访问权限修饰符

Swift 访问权限修饰符

swift 的设计目标之一就是安全类型语言(Designed for Safety),所以多几个访问修饰符也是合情合理的。
访问修饰符可以用来修饰属性方法结构体

private

只能在当前类里使用,不允许外部或者其子类访问。如果用来修饰类、结构体,那么作用相当于fileprivate

private(set) 表示禁止设置,即只读,可访问

fileprivate

只能在当前的源文件里使用

internal(默认)

可以在源代码所在的模块使用

public

可以在模块之外使用,但不可以在其它模块中重写和继承

open

可以在模块之外使用,也可以在其它模块中重写和继承

补充

在一个 Framework 里,既有 Swift 又有 OC 代码时,编译器会将 Swift 和 OC 分别当成一个 Module 。Swift 代码除了使用关键字 @objc 外,还必须使用 public 级别的关键字才能被同一个 Framework 里的 OC 代码使用