Junior — Middle
Milyen módszereket alkalmaz a memória szivárgások felismerésére a projektjeiben?
sobes.tech MI
Válasz az MI-től
Az iOS projektekben memória szivárgások felismerésére általában a következő módszereket használom:
- Az Instruments eszköz (különösen a Leaks és Allocations) használata a memóriahasználat figyelésére és a szivárgások azonosítására.
- A Xcode Memory Graph Debugger segítségével erős referenciaciklusok (retain cycles) elemzése.
- A gyenge (weak) és tulajdon nélküli (unowned) referenciák helyes használatának ellenőrzése zárványokban és delegáltakban.
Példa: ha az A objektum tartja B-t, és B egy zárványban tartja A-t weak nélkül, akkor egy retention ciklus alakul ki, és a memória nem szabadul fel.
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
print(self?.description ?? "No self")
}
}
}
Itt a [weak self] használata megakadályozza a szivárgást.