Je suis en train de parcourir le didacticiel iOS de la page des développeurs Apple .
Il me semble que protocol
et interface
avoir presque la même fonctionnalité.
Y a-t-il des différences entre les deux?
l'utilisation différente dans le projet?
Actualisé
Oui , j'ai lu le lien ci-dessus et je ne suis toujours pas sûr des différences et de l'utilisation entre protocol
et interface
. Lorsque je pose une question comme celle-ci, j'aimerais voir une explication simple sur le sujet. Parfois, il peut être difficile d'obtenir tout dans la documentation.
Réponses:
Essentiellement, les protocoles sont très similaires aux interfaces Java, sauf pour:
.
Ce sont les différences immédiatement apparentes pour un développeur Java (ou du moins ce que j'ai repéré jusqu'à présent).
la source
default
mot - clé . Consultez le didacticiel Oracle .En complément de la réponse de @Thomas Schar. La magie du protocole Swift vient de l'extension.
2). L'interface Java 8 peut avoir des implémentations par défaut, mais cela ne peut pas être fait «rétroactivement».
ses implémentations si nécessaire) à n'importe quelle classe ou structure.
"cécité de la cornière" dans certains cas.
Une chose qui m'a fait me gratter la tête pendant quelques heures est que tous les protocoles ne peuvent pas être utilisés comme types de propriétés. Par exemple, si vous avez un protocole avec des typealias, vous ne pouvez pas l'utiliser directement comme type de propriété (cela a du sens quand on y pense, mais venant de Java, nous voulons vraiment avoir une propriété comme userDao: IDao).
la source
required
avant une fonction dans un protocole, vous obtenez juste'required' may only be used on 'init' declarations
...