Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
7
Что меняется при замене unowned на weak в отношениях объектов
Компании, где спрашивали:
АльфаБанк
Условие задачи
Вопрос: как изменится поведение программы, если вместо ссылки с модификатором unowned использовать weak? Рассмотрим пример на Swift, где один объект хранит сильную ссылку на другой, а второй объект держит обратную ссылку к первому.
class Individual {
var fullName: String
var device: Device?
init(fullName: String) { self.fullName = fullName }
}
class Device {
var type: String
unowned var owner: Individual
init(type: String, owner: Individual) {
self.type = type
self.owner = owner
}
}
var individual: Individual? = Individual(fullName: "Alice")
individual?.device = Device(type: "iPhone", owner: individual!)
individual = nil
Опишите, что произойдёт с объектами после установки individual = nil при текущем использовании unowned, а затем объясните, как изменится ситуация, если заменить unowned var owner: Individual на weak var owner: Individual?.