Junior — Middle
Kādus soļus jāveic, lai pareizi pabeigtu objekta vai resursa iznīcināšanu?
sobes.tech AI
Atbilde no AI
Lai pareizi iznīcinātu objektu vai atbrīvotu resursus iOS, jāveic šādi soļi:
- Saistīto resursu atbrīvošana — piemēram, aizvērt failus, apturēt taimerus, anulēt tīkla pieprasījumus.
- Novērotāju un paziņojumu noņemšana — ja objekts ir abonēts uz paziņojumiem vai KVO, ir jāatsakās, lai izvairītos no atmiņas noplūdēm.
- Stipro atsauču nulles iestatīšana — ja ir cikliskas atsauces, tās jāsalauž, lai ARC varētu brīvi atbrīvot atmiņu.
- Tīrīšanu veic
deinitmetodē — Swift,deinittiek izmantots, lai veiktu pēdējos darbus pirms objekta iznīcināšanas.
Piemērs:
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() {
// apstrāde
}
deinit {
timer?.invalidate()
NotificationCenter.default.removeObserver(self)
print("MyResource iznīcināts")
}
}
Pareiza iznīcināšana nodrošina resursu atbrīvošanu un novērš atmiņas noplūdes.