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.