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) шилтемелер колдонулат.