Ответ
Произойдёт бесконечная рекурсия и краш приложения. Свойство view является lazy — при первом обращении, если оно nil, система автоматически вызывает метод loadView для его создания.
Неправильный код (вызывает рекурсию):
override func loadView() {
// Обращение к view ДО его создания → снова вызовет loadView
let frame = view.frame // РЕКУРСИЯ!
view = UIView(frame: frame)
}
Правильный подход: Сначала создайте view, затем присвойте его свойству.
override func loadView() {
// 1. Создаём view вручную
let customView = UIView()
customView.backgroundColor = .white
// 2. Настраиваем
let label = UILabel()
customView.addSubview(label)
// 3. ТОЛЬКО теперь присваиваем свойству
self.view = customView
// 4. Теперь обращение к self.view безопасно
print(self.view.frame)
}
Важно: Метод loadView предназначен для создания иерархии view с нуля. Для её настройки используйте viewDidLoad.