Sobes.tech
Junior — Middle

É possível realizar a dispatch estática de métodos numa classe?

sobes.tech IA

Resposta da IA

No iOS (Objective-C e Swift), a despacho estática de métodos é possível para métodos definidos como estáticos (métodos de classe em Objective-C ou static/ class func em Swift). Esses métodos são chamados diretamente pelo nome da classe e resolvidos em tempo de compilação.

Ao contrário da despacho dinâmica (que é usada para métodos de instância e permite escolher a implementação em tempo de execução), a despacho estática é mais rápida, mas menos flexível.

Exemplo em Swift:

class MyClass {
    static func staticMethod() {
        print("Método estático")
    }

    func instanceMethod() {
        print("Método de instância")
    }
}

MyClass.staticMethod() // chamada do método estático
let obj = MyClass()
obj.instanceMethod()   // chamada do método de instância

Assim, a despacho estática em classes iOS é possível para métodos estáticos.