Junior — Middle
რის დროს არის უკეთესი გამოიყენოთ სუსტი მიმაგრება (weak var) Swift-ში?
sobes.tech AI
პასუხი AI-სგან
Swift- ში სუსტი მითითებები (weak var) გამოიყენება ძლიერი მითითებების ციკლების (retain cycles) თავიდან ასაცილებლად, რომლებიც იწვევს მეხსიერების გაჟონვას. რეკომენდებულია სუსტი მითითებების გამოყენება შემდეგ სიტუაციებში:
- როდესაც ობიექტი A მიუთითებს ობიექტზე B, და ობიექტი B მიუთითებს უკან ობიექტზე A, და ერთ-ერთი ამ მითითებებიდან უნდა იყოს სუსტი, რათა თავიდან აიცილოს ციკლი.
- დელეგატებში (delegates), სადაც დელეგატი ჩვეულებრივ გამოაცხადება როგორც weak, რათა არ შეინარჩუნოს დელეგატის ობიექტი მეხსიერებაში.
მაგალითი:
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// ინტერფეისის განახლება
}
}
აქ, self იჭერება როგორც სუსტი მითითება, რათა თავიდან აიცილოს ციკლი ტაიმერის და კონტროლერის შორის.