Sobes.tech
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.