Middle — Middle+
Zəif istinadı opsional hesab etmək olar və ya fərqli davranır?
sobes.tech Süni İntellekt
AI-dan cavab
Swift-də zəif əlaqə, ona istinad edən obyektin istinad sayğacını artırmayan bir əlaqədir. Həmişə opsional kimi elan edilir, çünki ona istinad edən obyekt yaddaşdan silinə bilər və bu halda zəif əlaqə avtomatik olaraq nil olur.
Yəni, zəif əlaqə bir opsional kimi davranır: dəyər və ya nil saxlaya bilər. Bu, artıq sərbəst buraxılmış obyektə müraciət etməmək üçün vacibdir.
Nümunə:
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, obyekt silinib
Beləliklə, zəif əlaqə həmişə opsionaldır və obyekt silindikdə avtomatik olaraq nil olur.