Junior — Middle
გაქვს გამოცდილება შენი პროექტების მეხსიერების ან რესურსების გაჟონვის მოძიებაში და აღმოფხვრაში?
sobes.tech AI
პასუხი AI-სგან
დიახ, iOS პროექტებში მე შევხვდი მეხსიერების ნაკადებს, რომლებიც ჩვეულებრივ დაკავშირებულია ობიექტებს შორის ციკლურ მითითებებთან, მაგალითად, დახურვებს და კლასებს შორის. ამ ნაკადების აღმოჩენისთვის გამოვიყენე Xcode-ის ინსტრუმენტები, Leaks და Allocations პროფილებით.
მიწოდების ციკლების გაწყვეტის მიზნით, საჭიროების შემთხვევაში, გამოვიყენე სუსტი (weak) ან უვითარებელი (unowned) მითითებები. ასევე შევამოწმე რესურსების სწორი გათავისუფლება და შეტყობინებებიდან გასვლა.
სუსტი მითითების მაგალითი დახურვაში:
class ViewController: UIViewController {
var closure: (() -> Void)?
func setupClosure() {
closure = { [weak self] in
guard let self = self else { return }
print(self.view)
}
}
}