У 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
щоб виїхати, як ... якщо він збирає, все добре.