objective-c - balise - open graph generator



Quel est le but des protocoles? (2)

J'ai écrit diverses choses en utilisant des protocoles comme dans le code d'exemple, mais aussi en utilisant des trucs de tiers, et ils semblent adopter des approches assez différentes. Certains adoptent spécifiquement les protocoles dans l'interface en utilisant

@interface myClass <myProtocol>

d'autres ne le font pas du tout et se font passer pour des délégués, mais le résultat final semble être exactement le même. J'ai essayé les deux, et ils fonctionnent tous les deux bien. Si quelqu'un pouvait expliquer cela, je serais un heureux campeur! Merci beaucoup.

https://src-bin.com


Answer #1

Le code Xcode peut également être très utile si vous utilisez des protocoles. Parfois, il suggère les méthodes manquantes.


Answer #2

Objective-C peut faire du typage statique et dynamique, de sorte que les protocoles ne sont pas vraiment requis pour les cas d'utilisation habituels. Vous pouvez toujours taper votre délégué en tant id et ensuite lui envoyer les messages que vous voulez. (Le compilateur vous avertira si vous essayez d'envoyer un message qui n'est pas visible depuis le fichier en cours.C'est à peu près la seule vérification de sécurité qu'il peut effectuer pour les objets id -typed sans faire d'inférence de type avancée.)

Mais rétrécir le type d' id avec les protocoles est agréable et recommandé, car 1) le code est plus lisible, 2) le compilateur vous avertira si vous essayez d'envoyer un message bidon au délégué et 3) vous obtiendrez un meilleur code.





protocols