Junior — Middle
ARCтеги автоматтык эс тутумду башкаруу механизмин жана ал колдонулбаган объекттерди кантип бошотот экенин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
ARC (Автоматтык шилтемелердин санын эсептөө) iOSтогу эс тутумду башкаруу механизми болуп саналат, ал автоматтык түрдө объекттерге шилтемелердин санын көзөмөлдөйт жана алар керек болбой калганда бошотуп жиберет.
Иштөө принциби:
- Ар бир объекттин шилтемелер саны (retention count) бар.
- Объектке шилтеме түзүлгөндө, сан көбөйөт.
- Шилтеме алынып салынганда, сан азая берет.
- Сан нөлгө жеткенде, объект автоматтык түрдө эс тутумдан алынып салынат.
ARC компиляция этабында иштейт жана retain/release чакырууларын кодго кошот, ошондуктан программист өзү эс тутумду кол менен башкарууга муктаж эмес.
Swift мисалы:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Иван") // retention count = 1
var person2 = person1 // retention count = 2
person1 = nil // retention count = 1
person2 = nil // retention count = 0, объект Person өчүрүлөт
Мындайча айтканда, ARC актив шилтемелер жок болгондо автоматтык түрдө объекттерди бошотуп жиберет.