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

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

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

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

В примере создаются два наследника базового контроллера, заполняются массивы строк и объектов, после чего один контроллер получает ссылки на массивы другого. Затем вызывается метод удаления последнего элемента у массива строк. Определите, какие значения останутся в массивах после выполнения кода.

import Foundation

class MyView: CustomStringConvertible {
    let index: UInt
    var ID: String

    init(withIndex index: UInt) {
        self.index = index
        ID = String(index)
    }

    var description: String {
        return "(\(index), \(ID))"
    }
}

class MyViewController {
    var strings: [String] = []
    var views: [MyView] = []
}

class FirstViewController: MyViewController {}
class SecondViewController: MyViewController {}

let firstVC = FirstViewController()
firstVC.strings = ["One", "Two", "Three"]
firstVC.views = [MyView(withIndex: 1), MyView(withIndex: 2), MyView(withIndex: 3)]

let secondVC = SecondViewController()
secondVC.strings = firstVC.strings
secondVC.views = firstVC.views

secondVC.strings.popLast