Open - это уровень доступа, введенный для введения ограничений на наследование классов на Swift.
Это означает, что уровень доступа открытого может быть применен только к классам и членам класса.
В классах
Открытый класс может быть подклассов в модуле он определен в и в модулях, которые импортируют модуль, в котором определен класс.
В членах класса
То же самое относится и к членам класса. Открытый метод может быть переопределен подклассами в модуле, который он определен в модулях и в модулях, которые импортируют модуль, в котором этот метод определен.
НЕОБХОДИМОСТЬ ДЛЯ ЭТОГО ОБНОВЛЕНИЯ
Некоторые классы библиотек и фреймворков не предназначены для подклассов и это может привести к непредсказуемому поведению. Собственная библиотека Apple также не позволит переопределять те же методы и классы,
Таким образом, после этого добавления они будут применять уровни общего и частного доступа соответственно.
Для получения более подробной информации имеет вид на Apple Documentation on Access Control
Таким образом, 'public' в Swift 3 подобен' public final' в Swift 2, а 'open' подобен' public'? – Clashsoft
@Clashsoft: «open» в Swift 3 как «public» в Swift 2. «public» в Swift 3 не имеет эквивалента в Swift 2. (Последний класс не может быть подклассом вообще, даже в том же модуле.) –
Ну ладно, спасибо за разъяснение. – Clashsoft