Sobes.tech
Junior — Middle

Lehet-e lezárást deklarálni osztályattribútumként?

sobes.tech MI

Válasz az MI-től

Igen, az iOS (Swift vagy Objective-C) esetén osztályok attribútumaként (tulajdonságaként) lehet zárakat (closures) deklarálni. Ez gyakran használatos callback-ek átadására vagy események kezelésére.

Például Swift-ben:

class MyClass {
    var completionHandler: (() -> Void)?

    func doSomething() {
        // Valamilyen feladat végrehajtása
        // ...
        // Zár meghívása, ha be van állítva
        completionHandler?()
    }
}

let obj = MyClass()
obj.completionHandler = {
    print("Feladat befejeződött")
}
obj.doSomething()

Ez a megközelítés lehetővé teszi a osztály viselkedésének rugalmas konfigurálását kívülről, a logika zárak (closures) segítségével történő átadásával.