Swift 4 имеет 5 спецификаторов доступа:
- open
- public
- внутренний
- fileprivate и
- private
Среди которых open является наименее ограничительным, в то время как private является наиболее ограничительным.
Используйте open или public спецификатор для классов / структур или переменных, которые вы хотите предоставить вне модуля.
По умолчанию все, что вы определяетепомечен как внутренний .Доступ к модулю возможен, но не доступен извне.
fileprivate предоставляет переменную / класс или структуру определяющему классу.
private является наиболее ограничительным и не может использоваться за пределами своего определяющего класса или структуры.
Обычно для публичного API open и public используются.
ДляКонкретные подробности см. в документации Apple: Контроль доступа