В Swift 4.0 Private теперь доступен в расширении, но в том же файле. Если вы объявляете/определяете расширение в другом файле, то ваша приватная переменная не будет доступна для вашего расширения**
Частный файл
Доступ к файлу ограничивает использование объекта его собственным определяющим исходным файлом. Используйте файловый доступ, чтобы скрыть детали реализации определенной части функциональности, когда эти детали используются во всем файле.
Синтаксис: fileprivate <var type> <variable name>
Пример: fileprivate class SomeFilePrivateClass {}
Частный
Частный доступ ограничивает использование объекта прилагаемой декларацией и расширениями этой декларации, которые находятся в том же файле. Используйте закрытый доступ, чтобы скрыть детали реализации определенной части функциональности, когда эти детали используются только в одном объявлении.
Синтаксис: private <var type> <variable name>
Пример: private class SomePrivateClass {}
Подробнее обо всех уровнях доступа: Swift. - Уровни доступа
Посмотрите на эти изображения:
Файл: ViewController.swift
Здесь расширение и контроллер представления находятся в одном файле, поэтому частная переменная testPrivateAccessLevel
доступна в расширении
![введите здесь описание изображения](https://i.stack.imgur.com/gMFT4.png)
Файл: TestFile.swift
Здесь расширение и контроллер представления находятся в разных файлах, поэтому закрытая переменная testPrivateAccessLevel
недоступна в расширении.
![введите здесь описание изображения](https://i.stack.imgur.com/vl5Pf.png)
![введите здесь описание изображения](https://i.stack.imgur.com/imr3Y.png)
Здесь класс ViewController2
является подклассом ViewController
, и оба находятся в одном файле. Здесь частная переменная testPrivateAccessLevel
недоступна в подклассе, но fileprivate доступен в подклассе.
![введите здесь описание изображения](https://i.stack.imgur.com/3EVz4.png)
person
Krunal
schedule
06.10.2017