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.