У Swift 4.0 приватне тепер доступне в розширенні, але в межах одного файлу. Якщо ви оголосите / визначите розширення в іншому файлі, то ваша приватна змінна не буде доступною для вашого розширення **
Файл
приватного доступу до файлів - приватний доступ до файлу обмежує використання сутності власним визначаючим вихідним файлом. Використовуйте приватний доступ до файлів, щоб приховати деталі реалізації певного фрагмента функціональності, коли ці дані використовуються в цілому файлі.
Синтаксис: fileprivate <var type> <variable name>
Приклад: fileprivate class SomeFilePrivateClass {}
Приватний
приватний доступ обмежує використання об'єкта до додаючої декларації та розширень цієї декларації, які знаходяться в одному файлі . Використовуйте приватний доступ, щоб приховати деталі реалізації певного фрагмента функціональності, коли ці дані використовуються лише в межах однієї декларації.
Синтаксис: private <var type> <variable name>
Приклад: private class SomePrivateClass {}
Ось більш детально про всі рівні доступу: Swift - Рівні доступу
Подивіться на ці зображення:
Файл: ViewController.swift
Тут розширення та контролер перегляду обидва знаходяться в одному файлі, отже приватна змінна testPrivateAccessLevelдоступна в розширенні

Файл: TestFile.swift
Тут розширення та контролер перегляду обидва знаходяться в різних файлах, отже приватна змінна testPrivateAccessLevelнедоступна в розширенні.


Тут клас ViewController2є підкласом ViewControllerі обидва знаходяться в одному файлі. Тут приватна змінна testPrivateAccessLevelнедоступна в підкласі, але файлприват доступний у підкласі.

privateнаfileprivate. Однак, якщо у вас є розкіш робити це вручну, ви можете часто отримати вигоду від тогоprivate,privateщоб виїхати, як ... якщо він збирає, все добре.