Sobes.tech
Junior — Middle

Milliseid meetodeid kasutate oma projektides mälulekkede avastamiseks?

sobes.tech AI

Vastus AI-lt

Tavaliselt kasutan iOS projektides mälulekke avastamiseks järgmisi meetodeid:

  • Instruments tööriista (eriti Leaks ja Allocations) kasutamine mälukasutuse jälgimiseks ja lekkide tuvastamiseks.
  • Tugevate viidete tsüklite (retain cycles) analüüsimine Xcode Memory Graph Debuggeri abil.
  • Kontrollida, kas nõrgad (weak) ja omandamata (unowned) viited on õigesti kasutatud suletistes ja delegaatides.

Näide: kui objekt A hoiab objekti B, ja B suletises hoiab A-d ilma weak-ita, tekib hoidmise tsükkel ning mälu ei vabastata.

class ViewController {
    var closure: (() -> Void)?
    func setup() {
        closure = { [weak self] in
            print(self?.description ?? "No self")
        }
    }
}

Siin [weak self] kasutamine takistab lekked.