Die Ausrufung eines Protokolls in Swift

Ein Protokoll wird in Swift durch das Schlüsselwort eingeführt Protokoll. Es enthält die # 173-Erklärungen, die von den Typen implementiert werden muss, die das Protokoll erlassen. Die häufigsten Elemente eines Protokolls sind Methoden und Eigenschaften. Das hier gezeigte Beispiel verwendet eine einzelne Eigenschaft, sondern mehrere Eigenschaften in einem # 173-Protokoll zulässig sind. Sie können auch Eigenschaften in Protokolle, die von Klassen und Strukturen angenommen werden.

Funktionen (Methoden) können von allen Arten angenommen werden, dass die Protokolle annehmen kann (das heißt, von Klassen, Strukturen und # 173-Aufzählungen).

Ein Protokoll genannt wird ebenso wie andere Swift Elemente benannt sind. Die grundlegende Protokollerklärung sieht wie folgt aus:

Protokoll MyProtocol {}

Wie bei Klassen, Strukturen und Aufzählungen, wird der Name aktiviert. In der Tat sind die meisten Swift Objekte mit Ausnahme von Eigenschaften und Funktionen aktiviert, und sie nutzen interne camelcase (Großbuchstaben für jede der eingebetteten Wörter mit Ausnahme der ersten).

Wenn das Protokoll eine Funktion enthält, die von Arten implementiert werden müssen, die es annehmen, könnte der Protokollerklärung wie folgt aussehen:

Protokoll MyProtocol {func myFunc () -> String}

Ein Objekt konform MyProtocol muss implementieren myFunc.

Um über die Syntax von Protokollen zu konzentrieren, hier die Beispiele zeigen Beispiel Verfahren anstatt Art Methoden, die vergleichbar sind, Klasse Methoden in Objective # 8208-C. Instanzmethoden werden am häufigsten verwendet.

Protokolle können voneinander erben. So können Sie ein Paar Protokolle erklären, wie folgt:

Protokoll MyProtocol {func myFunc () -> String} Protokoll MyProtocol2: MyProtocol {func MyFunc2 () -> String}

Ein Objekt konform MyProtocol muss implementieren myFunc. Ein Objekt konform MyProtocol2 muss implementieren MyFunc2, aber es muss auch implementieren myFunc weil MyProtocol2 Abgeleitet von MyProtocol. Ob MyProtocol2 seine eigene steht auf (das heißt, wenn sie nicht von erbt MyProtocol), Die Objekte entsprechen entweder MyProtocol oder MyProtocol2 muss implementieren myFunc - aber dies ist die gleiche Funktion in beiden Protokollen. Das ist ok. Nur nicht denken, würden Sie es zweimal implementieren.

Sie nicht eine Struktur, in der ein gleich # 8208 benannte Funktion (oder Eigenschaft) verwenden in mehrere Protokolle verwendet wird, es sei denn, Sie es wirklich bedeuten. (Ein drin Funktion wäre ein gutes Beispiel für die ordnungsgemäße Verwendung der doppelten Funktion Namen sein.)

Wenn Sie Ihr Protokoll wollen nur von Klassen angenommen werden, verwenden Sie das Schlüsselwort Klasse in der Liste aus, wie in der folgenden:

Protokoll MyProtocol: Klasse, MyProtocolToInheritFrom

Beachten Sie, dass die Klasse ist das Schlüsselwort, das Sie verwenden: Es ist nicht der Name einer Klasse.

Menü