Junior — Middle
Proqramlaşdırmada Unowned növünün istifadəsinin üstünlükləri və çatışmazlıqları nələrdir?
sobes.tech Süni İntellekt
AI-dan cavab
Swift-də unowned tipi, referans sayğacını artırmayan zəif bir istinad yaratmaq üçün istifadə olunur, lakin ona istinad edən obyektin istifadə zamanı həmişə mövcud olacağı qəbul edilir.
Üstünlüklər:
- Güclü istinad döngələrini qarşısını alır, yaddaş sızmalarını önləyir.
- Seçimli deyil, ona görə də açma (unwrap) tələb etmir.
Eksikliklər:
- Əgər
unownedistinad etdiyi obyekt sərbəst buraxılırsa, bu istinada giriş tətbiqin çökməsinə (runtime error) səbəb olar. - İstinad etdiyi obyektin həyat dövrünün, istinadın həyat dövründən uzun və ya ona bərabər olacağına güvən tələb edir.
İstifadə nümunəsi:
class Owner {
var pet: Pet?
}
class Pet {
unowned let owner: Owner
init(owner: Owner) {
self.owner = owner
}
}
let owner = Owner()
owner.pet = Pet(owner: owner)
Burada, Pet, güclü istinad döngələrini qarşısını almaq üçün Owner-a unowned istinad saxlayır.