Junior — Middle
Ar galima uždarymą deklaruoti kaip klasės atributą?
sobes.tech AI
Atsakymas iš AI
Taip, iOS (Swift arba Objective-C) galima deklaruoti closures kaip klasės atributus (savybes). Tai dažnai naudojama grąžinamųjų kvietimų (callback'ų) perdavimui arba įvykių valdymui.
Pavyzdžiui, Swift:
class MyClass {
var completionHandler: (() -> Void)?
func doSomething() {
// Atlikti kažkokią užduotį
// ...
// Iškviesti closure, jei jis nustatytas
completionHandler?()
}
}
let obj = MyClass()
obj.completionHandler = {
print("Užduotis baigta")
}
obj.doSomething()
Šis požiūris leidžia lankstiai konfigūruoti klasės elgseną iš išorės, perduodant logiką per closures.