Вот мой файл ViewController.swift:
class ViewController: UIViewController {
private var myInt = 10
}
extension ViewController {
func printMyInt() {
print(myInt)
}
}
Хотя, как указано в Документация Swift - раздел Уровни доступа:
Частный доступ ограничивает использование объекта в приложении декларации, и расширениям этого объявления, которые находятся в тот же файл. Используйте частный доступ, чтобы скрыть сведения о реализации конкретная часть функциональности, когда эти данные используются только в рамках одной декларации.
Так как Swift 4 выпущен, я предполагаю, что я могу реализовать такую вещь (это также упоминается в: Что нового в Swift - WWDC 2017), однако, мне показалось, что компилятор:
'myInt' недоступен из-за уровня защиты 'private'
Это несовместимо с тем, что указано в документации?
Как простое быстрое решение, я могу объявить его как:
fileprivate var myInt = 10
но мне интересно, почему так происходит, я не понимаю, что упоминается в документации? или это ошибка "Xcode" (используется версия 9.0.1)?
Примечание: проект был создан в старшем Xcode 8, а затем перенесен в Xcode 9.