Sobes.tech
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:

  1. Saistīto resursu atbrīvošana — piemēram, aizvērt failus, apturēt taimerus, anulēt tīkla pieprasījumus.
  2. 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.
  3. Stipro atsauču nulles iestatīšana — ja ir cikliskas atsauces, tās jāsalauž, lai ARC varētu brīvi atbrīvot atmiņu.
  4. Tīrīšanu veic deinit metodē — Swift, deinit tiek 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.