Swift —访问控制

访问控制限制从其他源文件和模块中的代码访问部分代码。 使用此功能,您可以隐藏代码的实现细节,并指定可以访问和使用该代码的首选接口。 (快速文档)

您可以指定对单个类型以及属性,方法,初始化程序和下标的访问级别。 默认情况下,如果您不先指定访问级别,则Swift会分配内部访问级别。

快速访问级别

 私人的 
文件私有
内部
上市
打开

open/public启用实体可以在其定义模块的任何源文件中使用。 从上图可以看到, public访问权限授予对其他应用程序和框架的访问权限。 您可以从定义模块或导入该模块的任何模块中的任何源文件访问打开的类和类成员。 公共对子类化和覆盖的限制更大。

上面的代码显示了最少受限级别的访问。 当指定框架的公共接口时,通常是开放和公共访问。

internal访问使实体可以在其定义模块的ant源文件中使用。 它不允许访问该模块外部的任何源文件。 通常在定义应用程序或框架的内部结构时使用。 这是默认的访问级别。

file-private访问将实体的使用限制为自己定义的源文件。 当它在整个文件中使用时,用于隐藏一段代码的细节。

private访问将实体的使用限制为包含在声明中。 它用于隐藏仅在单个声明中使用的一段代码的详细信息。

请记住,应用程序目标是其自己的模块,默认情况下设置为内部访问。 Swift 4将私有访问的范围扩大到包括扩展名,但扩展名仍必须位于同一源文件中才能进行私有访问。