Junior — Middle
Жобаларыңызда эс тутумдун же ресурстардын агып кетишин табуу жана жоюу боюнча тажрыйбаңыз барбы?
sobes.tech AI
AIден жооп
Ооба, iOS долбоорлорунда мен эс тутумдун агып кетишине туш болдум, көбүнесе объекттердин ортосунда циклик шилтемелер менен байланыштуу, мисалы, жабык жана класстар ортосунда. Бул агып кетүүлөрдү табуу үчүн мен Xcode инструментилерин, Leaks жана Allocations профилдери менен колдонуп келгем.
Агып кетүүлөрдү оңдоо үчүн, кармоо циклдерин үзүү үчүн зарыл болгон жерлерде алсыз (weak) же менчигисиз (unowned) шилтемелерди колдонуп келгем. Ошондой эле ресурстарды туура бошотуп, кабарламалардан чыгуу текшерилди.
Алсыз шилтеменин мисалы жабыкта:
class ViewController: UIViewController {
var closure: (() -> Void)?
func setupClosure() {
closure = { [weak self] in
guard let self = self else { return }
print(self.view)
}
}
}