Sobes.tech
Junior — Middle

Программаларда кандайча эс тутумдун агып кетүү түрлөрү бар?

sobes.tech AI

AIден жооп

iOS тиркемелеринде эс тутумдун агып кетишинин негизги түрлөрү объекттерге туура эмес шилтемелерди башкаруу менен байланыштуу:

  • Күчтүү шилтемелер цикли (Strong Reference Cycles) — эки объект бири-бирине күчтүү шилтемелерге ээ болгондо жана эч кимиси бошотулбайт.
  • Жабдыктар (Closures) аркылуу агып кетүүлөр — эгер жабдык selfти күчтүү шилтемемен кармап калса, бул шилтемелер циклине алып келиши мүмкүн.
  • Бошотулбаган ресурстар — объекттер, алар deinit чакырылбагандыктан же туура эмес колдонулгандан кийин бошотулбайт.

Мисал күчтүү шилтемелер цикли:

class Person {
    var apartment: Apartment?
}

class Apartment {
    var tenant: Person?
}

let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // күчтүү шилтемелер цикли

Бул алдын алуу үчүн, алсыз (weak) же менчикке алынбаган (unowned) шилтемелер колдонулат.