Junior — Middle
Чӣ гуна шумо дар барномаҳои худ сӯрохии хотираро муайян ва бартараф мекунед?
sobes.tech AI
Ҷавоб аз AI
Барои муайян кардани шикасти хотира дар барномаҳои iOS, одатан аз воситаҳои Xcode, ба монанди Instruments бо профилҳои Leaks ва Allocations истифода мекунам.
- Барномаиро тавассути Instruments оғоз мекунам ва мебинам, ки оё дар вақти воқеӣ шикастҳо пайдо мешаванд.
- Объектҳоро, ки озод намешаванд, ва занҷирҳои нигоҳдории онҳоро (retaining cycles) таҳлил мекунам.
- Одатан, шикастҳо ба сабаби муоширати циклии қавӣ, масалан, байни объектҳо ё closures, рӯй медиҳанд, бинобар ин истифодаи weak ва unowned ишораҳоро санҷида мебинам.
Масалан барои бартараф кардани retaining cycle дар closure:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
self?.doSomething()
}
}
func doSomething() {
print("Амал")
}
}
Ин ҷо истифодаи [weak self] аз муоширати қавӣ байни объект ва closure пешгирӣ мекунад.
Ҳамчунин, истифодаи таҳлилгари статикӣ (Product -> Analyze) дар Xcode барои муайян кардани мушкилоти эҳтимолии хотира кӯмак мекунад.