Junior — Middle
Tətbiqlərdə yaddaş sızıntılarının hansı növlərinin mövcud olduğunu izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
iOS tətbiqlərində yaddaş sızıntılarının əsas növləri obyektlərə düzgün olmayan istinadların idarə olunması ilə əlaqədardır:
- Güclü istinad döngələri (Strong Reference Cycles) — iki obyekt bir-birinə güclü istinadlar saxlayanda və heç biri sərbəst buraxıla bilmədikdə.
- Qapanışlar (Closures) səbəbindən sızıntılar — əgər qapanış self-i güclü istinadla ələ keçirərsə, bu, istinad döngəsinə səbəb ola bilər.
- Sərbəst buraxılmayan resurslar — obyektlər, deinit çağırışı edilmədiyi və ya düzgün istifadə olunmadığı üçün sərbəst buraxılmır.
Güclü istinad döngüsünə nümunə:
class Person {
var apartment: Apartment?
}
class Apartment {
var tenant: Person?
}
let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // güclü istinad döngəsi
Bunun qarşısını almaq üçün zəif (weak) və ya qeyri-ümumi (unowned) istinadlar istifadə olunur.