Контроль доступа ограничивает доступ к частям наших кодов из кодов в других исходных файлах и модулях. В Swift в настоящее время у нас есть 5 уровней доступа. Это Open, Public, Internal, Fileprivate, Private.

Открыть:

Это позволяет использовать сущность вне определяющего модуля. Предположим, мы все знаем об UIKit. Мы часто ежедневно используем множество элементов пользовательского интерфейса из UIKit. Когда мы пытаемся использовать UIComponents, такие как UIButton, UICollectionView, UITableView, UIViewController, нам нужно импортировать UIKit поверх класса. Таким образом, UIKit на самом деле является модулем, который мы можем импортировать в наш класс и подклассировать его функции.

Общедоступно:

Уровень открытого доступа позволяет нам создать подкласс из другого модуля, тогда как на уровне общего доступа мы можем создать подкласс или переопределить его только из модуля, в котором он определен.

Внутренний:

Внутренние классы и члены могут быть доступны в любом месте внутри того же модуля (цели), в котором они определены. Это уровень доступа по умолчанию.

Fileprivate:

Означает, что он доступен только из файла swift.

Личное:

Он доступен только в рамках определенного объявления.