Ich habe die Dokumentation gelesen, aber ich bin immer noch verwirrt. Kann jemand bitte erklären, was ein Protokoll ist? (Sie könnten Code-Beispiele geben, aber ich bin wirklich auf der Suche nach einer Erklärung)
Hier ist ein großartiger Artikel . Tatsächlich ist ein Protokoll in Objective-C sehr ähnlich zu einer Schnittstelle in Java oder einer rein virtuellen Klasse in C ++ (obwohl nicht genau so, wie reine virtuelle Klassen Datenelemente haben können ...). Es ist im Grunde eine Garantie, dass eine bestimmte Klasse weiß, wie sie auf eine bestimmte Menge von Methoden (Nachrichten) reagiert.
Bearbeiten Der Originalartikel ist verschwunden, daher habe ich ihn durch ein anderes Tutorial ersetzt.
Ein Protokoll bedeutet, eine Liste von erforderlichen und / oder optionalen Methoden zu definieren, die eine Klasse implementiert. Wenn eine Klasse ein Protokoll annimmt, muss sie alle erforderlichen Methoden in den von ihr übernommenen Protokollen implementieren. Cocoa verwendet Protokolle, um die Interprozesskommunikation durch Objective-C-Nachrichten zu unterstützen. Da Objective-C keine Mehrfachvererbung unterstützt, können Sie ähnliche Funktionen mit Protokollen erzielen, da eine Klasse mehrere Protokolle übernehmen kann.
Ein gutes Beispiel für ein Protokoll ist NSCoding, das über zwei erforderliche Methoden verfügt, die eine Klasse implementieren muss. Dieses Protokoll ermöglicht es, Klassen zu codieren und zu decodieren, dh Objekte durch Schreiben in den permanenten Speicher zu archivieren.
%Vor%Um ein Protokoll zu übernehmen, schließen Sie den Namen des Protokolls in & lt; & gt; wie unten
%Vor%Wie definiere ich ein Protokoll?
Wir können beide erforderlichen optionalen Methoden innerhalb eines Protokolls erstellen. Was folgt ist eine Definition eines Protokolls mit dem Namen 'Hallo':
%Vor%Um das Protokoll wie im obigen Beispiel zu verwenden, deklarieren Sie das Protokoll in der Schnittstelle und schreiben Sie die erforderlichen Methoden in die Klassenimplementierung:
// Schnittstelle @interface AnotherClass: NSObject
%Vor%// Implementierung @implementation AnotherClass
%Vor%// Optionale Methode
%Vor%Ich hoffe, es hilft Ihnen, Protokoll zu lernen.
Tags und Links objective-c