Sobes.tech
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.