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%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 .
Tags und Links objective-c iphone