Sobes.tech
Junior — Middle

Pode declarar um encerramento como um atributo de classe?

sobes.tech IA

Resposta da IA

Sim, no iOS (Swift ou Objective-C) pode-se declarar closures como atributos (propriedades) de uma classe. Isto é frequentemente usado para passar callbacks ou lidar com eventos.

Por exemplo, em Swift:

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

    func doSomething() {
        // Executar alguma tarefa
        // ...
        // Chamar a closure se estiver definida
        completionHandler?()
    }
}

let obj = MyClass()
obj.completionHandler = {
    print("Tarefa concluída")
}
obj.doSomething()

Esta abordagem permite configurar de forma flexível o comportamento da classe de fora, passando a lógica através de closures.