Ich folge einer Regel, das Delegate-Protokoll innerhalb der Datei der Klasse zu halten, die die delegate-Eigenschaft enthält.
Die folgende Codebeschreibung zeigt, wie das Protokoll mit der Eigenschaft beibehalten wird, in der der Delegat festgelegt wird.
MyClass.swift:
protocol MyDelegate: class {
func firstDelegateMethod()
func secondDelegateMethod()
}
class MyClass {
weak var delegate: MyDelegate?
}
Die Delegierten sind die Objekte, die dem Protokoll entsprechen müssen und werden von anderen Klassen definiert, nicht derjenige, der das Protokoll enthält.
Es ist hilfreich, daran zu denken, dass die Delegierten diejenigen sind, die die Arbeit machen. Sie tun, was von dem, was im Protokoll deklariert ist, benötigt wird.
Es kann verwirrend sein, diese Beziehungen zu verfolgen, da das Protokoll im Prinzip überall platziert werden kann. Wenn Sie ein Muster konsistent so folgen, wird es das Leben einfacher und Ihren Code überschaubarer machen.
Was meinen Sie mit "verwandte Klasse"? –
gute Frage! Die Klasse, die danach ruft. z.B. 'someInstance.someDelegateMethod()' –
Sie sprechen also gerade von einem _delegate_-Protokoll? –