Sobes.tech
Junior — Middle

São todas as funções declaradas no protocolo obrigatórias para a classe que o implementa?

sobes.tech IA

Resposta da IA

Em Swift, todas as funções declaradas num protocolo são obrigatórias por padrão para a classe que adota esse protocolo. No entanto, se o protocolo especificar métodos com uma implementação padrão através de uma extensão, a implementação desses métodos na classe torna-se opcional.

Exemplo:

protocol MyProtocol {
    func requiredMethod()
    func optionalMethod()
}

extension MyProtocol {
    func optionalMethod() {
        print("Implementação padrão")
    }
}

class MyClass: MyProtocol {
    func requiredMethod() {
        print("Método obrigatório implementado")
    }
    // optionalMethod não é obrigatório implementar
}

Assim, apenas os métodos sem implementação padrão no protocolo são obrigatórios.