Estou passando pelo tutorial do iOS na página de desenvolvedor da Apple .
Parece-me que protocol
e interface
quase tem a mesma funcionalidade.
Existem diferenças entre os dois?
o uso diferente no projeto?
Atualizada
Sim , li o link acima e ainda não tenho certeza das diferenças e uso entre protocol
e interface
. Quando faço uma pergunta como essa, gostaria de ver uma explicação simples sobre o tópico. Às vezes, pode ser difícil obter tudo da documentação.
Respostas:
Essencialmente, os protocolos são muito semelhantes às interfaces Java, exceto:
.
Essas são as diferenças imediatamente aparentes para um desenvolvedor Java (ou pelo menos o que vi até agora).
fonte
default
palavra - chave . Veja o Tutorial do Oracle .Complementando a resposta de @Thomas Schar. A mágica do protocolo Swift vem da extensão.
2). A interface Java 8 pode ter implementações padrão, mas não pode ser feita "retroativamente".
suas implementações, se necessário) a qualquer classe ou estrutura.
"cegueira angular" em alguns casos.
Uma coisa que me fez coçar a cabeça por algumas horas é que nem todos os protocolos podem ser usados como tipos de propriedade. Por exemplo, se você possui um protocolo com typealias, não pode usá-lo diretamente como um tipo de propriedade (faz sentido quando você pensa sobre isso, mas, vindo do Java, realmente queremos ter uma propriedade como userDao: IDao).
fonte
required
antes de uma função em um protocolo, você apenas'required' may only be used on 'init' declarations
...