Was genau bedeutet "Adoptieren eines Protokolls" in der Objective-C / Cocoa-Dokumentation?

8

Ich bin ein C # -Entwickler, der mit der Programmierung von Objective-C / Cocoa Touch begonnen hat. Ich denke, dass ich einige Begriffe falsch verstanden habe, weil ich über sie nachdenke "der C # -Weg". Konkret habe ich in verschiedenen Dokumentationen und Tutorials den Begriff "Protokoll" verstanden.

Was ist in Objective-C genau ein Protokoll? Kann es mit einer C # -Schnittstelle verglichen werden?

Entspricht die folgende Deklaration der Aussage "Die Klasse implementiert das Protokoll UITextFieldDelegate"? Oder soll UITextFieldDelegate mit einem generischen Typparameter in C # verglichen werden?

%Vor%     
driis 16.05.2010, 15:58
quelle

2 Antworten

7

In Objective-C ist ein Protokoll der Name für eine Sammlung von Selektoren / Methoden und ist wie eine Interface-Deklaration in Java (wahrscheinlich auch in C #).

%Vor%

bedeutet, dass die Klasse MyViewController von der Klasse UIViewController erbt und das Protokoll UITextFieldDelegate übernimmt / implementiert.

Dies bedeutet, dass MyViewController alle Methoden implementieren muss, die in UITextFieldDelegate deklariert sind.

EDIT: Es scheint, dass mit der Einführung von Objective-C 2.0 die Möglichkeit eingeführt wurde, Methoden eines Protokolls als @optional und @required zu markieren. Siehe Abschnitt Optional Protocol Methods von Apple Objective-C-Dokumentation .

Hilfreicher Link von Wikibooks zu Objective-C-Protokollen .

    
MKroehnert 16.05.2010, 16:01
quelle
1

Das Protokoll ist in gewisser Hinsicht wie eine Schnittstelle. Wenn Sie eine Methode im Protokoll als optional deklarieren, muss die Klasse diese Methode implementieren. Wenn nicht, muss die Klasse es implementieren.

    
vodkhang 16.05.2010 16:04
quelle

Tags und Links