Quelle est la différence entre les protocoles formels et informels dans Objective-C?
Réponses
Trop de publicités?À Partir De La Documentation Officielle
Formel et Informel des Protocoles
Il existe deux variétés de protocole, formel et informel:
L' informel est un protocole de la catégorie sur NSObject, ce qui implicitement presque tous les objets à adopter le protocole. (Une catégorie est un langue fonctionnalité qui vous permet de ajouter des méthodes à une classe sans sous-classement.) La mise en œuvre de la méthodes, dans un cadre informel protocole est facultatif. Avant d'appeler une méthode, l'objet appelant vérifie si l'objet cible met en œuvre c'. Jusqu'à ce protocole facultatif méthodes ont été introduites en Objective-C 2.0, informel protocoles ont été essentiels à la le chemin de la Fondation et AppKit classes mise en œuvre la délégation.
Un officiel de protocole déclare une liste de méthodes que client classes sont appelés à mettre en œuvre. Officiel des protocoles ont leur propre déclaration, l'adoption, et la vérification de la syntaxe. Vous pouvez désigner les méthodes dont la mise en œuvre est obligatoire ou facultatif avec le @requis et @facultatif mots-clés. Les sous-classes héritent formelle protocoles adoptés par leurs ancêtres. Un protocole formel peut aussi adopter d'autres les protocoles.
Les protocoles officiels sont une extension l'Objective-C langue.
La langue Objective-C fournit un moyen de déclarer officiellement une liste de méthodes (y compris les propriétés déclarées) comme un protocole. Les protocoles formels sont pris en charge par la langue et le système de durée. Par exemple, le compilateur peut vérifier les types basés sur les protocoles, et les objets peuvent introspection au moment de l'exécution pour signaler si ou non, ils se conforment à un protocole.