Junior — Middle
Zəif istinadların istifadəsi harada məhdudlaşdırılır və onların davranış xüsusiyyətləri nələrdir?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-də zəif istinadlar (weak references), güclü istinad döngələrini və yaddaş sızmalarını qarşısını almaq üçün istifadə olunur. Onlar obyektin istinad sayğacını artırmır, buna görə obyekt, zəif istinad olsa belə, de-initiialize edilə bilər.
Xüsusiyyətlər və məhdudiyyətlər:
- Zəif istinadın göstərdiyi obyekt silindiyində, zəif istinad avtomatik olaraq nil olur.
- Zəif istinadlar, avtomatik sıfırlamağı dəstəkləməyən tiplərlə istifadə oluna bilməz (məsələn, ARC tərəfindən idarə olunan obyektlər).
- Zəif istinadlardan istifadə edərkən, onları nil olub-olmadığını yoxlamaq vacibdir ki, çökmənin qarşısını almaq üçün.
Nümunə:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person: Person? = Person(name: "Иван")
weak var weakPerson = person
person = nil
print(weakPerson) // nil göstərəcək, çünki obyekt silinib
Beləliklə, zəif istinadlar yaddaş idarə etməyə kömək edir, lakin diqqətli istifadə və nil yoxlaması tələb edir.