Назад к задачам
Junior — Senior
12

Что будет выведено в примере №7

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

Т-БанкТ-Банк
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В данном примере создаются два класса, каждый из которых хранит слабую (weak) ссылку на объект другого класса. После создания экземпляров и установки взаимных делегатов выводятся сами объекты и их делегаты, чтобы понять, какие значения будут напечатаны.

import Foundation

class A: NSObject {
    weak var delegate: B?
}

class B: NSObject {
    weak var delegate: A?
}

var a: A?
var b: B?

func configure() {
    a = A()
    b = B()

    a?.delegate = b
    b?.delegate = a
}

configure()

print(a)              // ?
print(b)              // ?
print(a?.delegate)    // ?
print(b?.delegate)    // ?