Sobes.tech
Назад к вопросам
Middle — Middle+
76

Можно ли считать Weak ссылку опциональной или она ведет себя иначе?

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

Ответ от нейросети

sobes.tech AI

Weak ссылка в Swift — это ссылка, которая не увеличивает счетчик ссылок на объект, на который она указывает. Она всегда объявляется как опциональная, потому что объект, на который она ссылается, может быть удалён из памяти, и тогда weak ссылка автоматически станет nil.

То есть weak ссылка ведёт себя как опционал: она может содержать значение или nil. Это важно, чтобы избежать обращения к уже освобождённому объекту.

Пример:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var person: Person? = Person(name: "Alex")
weak var weakPerson: Person? = person

print(weakPerson?.name) // Optional("Alex")
person = nil
print(weakPerson?.name) // nil, так как объект удалён

Таким образом, weak ссылка всегда опциональна и автоматически становится nil при удалении объекта.