Назад к вопросам
Junior — Middle
86
Каким образом можно сделать слабую ссылку в языке программирования?
Компании, где спрашивали
AO Колеса
Ответ от нейросети
sobes.tech AI
В iOS (Swift) для создания слабой ссылки используется ключевое слово weak. Слабая ссылка не увеличивает счетчик ссылок на объект, что помогает избежать циклов удержания и утечек памяти.
Пример:
class Person {
var name: String
weak var apartment: Apartment? // слабая ссылка
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
var tenant: Person? // сильная ссылка
init(unit: String) {
self.unit = unit
}
}
// Использование:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john
В этом примере Person содержит слабую ссылку на Apartment, чтобы избежать цикла удержания между Person и Apartment. Если бы обе ссылки были сильными, объекты не освободились бы из памяти.
Важно: слабые ссылки должны быть опциональными (?), так как объект, на который они ссылаются, может быть удалён.