В Swift 4.0 Private теперь доступен в расширении, но в том же файле. Если вы объявите / определите расширение в другом файле, ваша личная переменная не будет доступна для вашего расширения **
Приватный
доступ к файлу Приватный доступ к файлу ограничивает использование объекта его собственным определяющим исходным файлом. Используйте частный доступ к файлу, чтобы скрыть детали реализации определенной части функциональности, когда эти детали используются во всем файле.
Синтаксис: fileprivate <var type> <variable name>
Пример: fileprivate class SomeFilePrivateClass {}
Частный
частный доступ ограничивает использование сущности включающим объявлением и расширениями этого объявления, которые находятся в том же файле . Используйте частный доступ, чтобы скрыть детали реализации определенной части функциональности, когда эти детали используются только в одном объявлении.
Синтаксис: private <var type> <variable name>
Пример: private class SomePrivateClass {}
Вот более подробная информация обо всех уровнях доступа: Swift - Уровни доступа
Посмотрите на эти изображения:
File: ViewController.swift
Здесь расширение и контроллер представления находятся в одном файле, поэтому частная переменная testPrivateAccessLevel
доступна в расширении
Файл: TestFile.swift
Здесь расширение и контроллер представления находятся в разных файлах, поэтому закрытая переменная testPrivateAccessLevel
недоступна в расширении.
Здесь класс ViewController2
является подклассом, ViewController
и оба они находятся в одном файле. Здесь приватная переменная testPrivateAccessLevel
недоступна в подклассе, но файловая приватная доступна в подклассе.
private
вfileprivate
. Однако, если у вас есть возможность сделать это вручную, вы часто можете получить выгоду, оставивprivate
asprivate
... если он компилируется, все хорошо.