Sobes.tech
Junior — Senior
94

Что будет выведено при использовании unowned в замыкании?

Компании, где спрашивали:

СБЕРСБЕР
Условие задачи

В данном примере на Swift показано, как замыкание захватывает объект UIView с указанием unowned. Сначала создаётся объект UIView, ему присваивается тег 1, после чего замыкание выводит значение тега. Затем переменной присваивается новый объект UIView с тегом 2, и замыкание вызывается повторно. Нужно понять, какое значение будет напечатано каждый раз.

var container = UIView()
container.tag = 1

let displayTag = { [unowned container] in
    print(container.tag)
}

displayTag()

container = UIView()
container.tag = 2

displayTag()