Junior — Middle
Obyekt və ya resursun düzgün şəkildə məhv edilməsini təmin etmək üçün hansı addımlar atılmalıdır?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-da obyektin düzgün şəkildə məhv edilməsi və ya resursların azad olunması üçün aşağıdakı addımlar yerinə yetirilməlidir:
- Əlaqəli resursları azad edin — məsələn, faylları bağlayın, timerləri dayandırın, şəbəkə sorğularını ləğv edin.
- Nəzarətçiləri və bildirişləri silin — əgər obyekt bildirişlərə və ya KVO-ya abunədirsə, sızmaları qarşısını almaq üçün abunəliyi ləğv edin.
- Güclü istinadları null-a təyin edin — əgər döngüvi istinadlar varsa, onları qırın ki, ARC yaddaşı sərbəst buraxa bilsin.
deinitmetodunda təmizləmə aparın — Swift-də,deinitdestruktoru obyektin məhv edilməsindən əvvəl son əməliyyatları yerinə yetirmək üçün istifadə olunur.
Nümunə:
class MyResource {
var timer: Timer?
init() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { _ in
print("Tick")
}
NotificationCenter.default.addObserver(self, selector: #selector(handleNotification), name: .someNotification, object: nil)
}
@objc func handleNotification() {
// emal
}
deinit {
timer?.invalidate()
NotificationCenter.default.removeObserver(self)
print("MyResource məhv edildi")
}
}
Beləliklə, düzgün məhv etmə resursların sərbəst buraxılmasını təmin edir və yaddaş sızmalarını qarşısını alır.