DevPrep

Все темы › Что выведет? Головоломки с собеседований

asyncAfter с self во ViewController: когда освободится экран?

Middle PRO

Задача

Пользователь открыл экран и закрыл его через 3 секунды. Напечатается ли "text"? Когда вызовется deinit?

final class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
            self.log("text")
        }
    }

    private func log(_ message: String) { print(message) }

    deinit { print("deinit") }
}

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store