Middle
რა იცით Swift-ში კაპჩურის სიაზე?
sobes.tech AI
პასუხი AI-სგან
Swift-ში capture list გამოიყენება დახურვებში (closures) გარემოს კონტექსტიდან ცვლადების დაჭერის მართვისთვის, განსაკუთრებით ძლიერი მითითებების ციკლების (retain cycles) თავიდან ასაცილებლად.
Capture list იწერება კუთხეებშორის დახურვის სხეულზე წინ და საშუალებას აძლევს განსაზღვროთ, როგორ დაიჭერიან ცვლადები — ძლიერი (strong), სუსტი (weak) ან უშვილო (unowned).
მაგალითი:
class ViewController {
var name = "Swift"
lazy var closure: () -> Void = { [weak self] in
guard let self = self else { return }
print(self.name)
}
}
აქ [weak self] თავიდან აცილებს ძლიერი მითითების შენარჩუნებას self-ზე დახურვის შიგნით, რაც ეხმარება მეხსიერების გაჟონვის თავიდან აცილებაში.
ამიტომ, capture list არის ინსტრუმენტი ობიექტების სიცოცხლის ციკლის კონტროლისთვის, რომლებიც დაჭერილია დახურვით.