HR's Blog

Swimming 🏊 in the sea🌊of code!

0%

Access Control

.

除了可以给属性、方法、加载器添加访问控制,还可以给类、结构体、和枚举。以及协议。Swift为了减少代码量,添加了默认的权限internal。Swift的访问控制是基于modulessource files
modules:你可以通过import导入的一个框架或者是一个程序。
source files:即Swift中单个文件。但是一个文件中通常会定义多个类。

open

open 修饰的 class 在 Module 内部和外部都可以被访问和继承
open 修饰的 func 在 Module 内部和外部都可以被访问和重载(override)

Public

public 修饰的 class 在 Module 内部可以访问和继承,在外部只能访问
public 修饰的 func 在 Module 内部可以被访问和重载(override),在外部只能访问

internal

默认属性不需要设置,该框架或者app内可以访问

fileprivate

文件内部可以访问

private

该类中使用

权限范围排列
open->public->internal->fileprivate->private。

参考资料
The Swift Programming Language-> Access Control