Wie Verwenden von benutzerdefinierten Delegaten in Objective-C
Muss ich wissen, über die Verwendung der delegate-Methoden in Objective-C. Kann mir jemand zeigen Sie mir die richtige Quelle?
InformationsquelleAutor der Frage Sreelal | 2009-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wollen, deklarieren Sie einen Delegaten-Protokoll für Ihre Klasse. Ein Beispiel einer delegate-Protokoll und Schnittstelle für die Klasse
Foo
könnte wie folgt Aussehen:Vergessen Sie nicht, zu synthetisieren und Ihre Eigenschaften in der
@implementation
.Was dieser code war, habe erklären ein Protokoll namens FooDelegate; eine Klasse, entspricht dieses Protokoll würde erklärt werden, wie
@interface SomeClass : SuperClass <FooDelegate> {}
. Da diese Klasse entspricht dem ProtokollFooDelegate
Sie wird nun zur Implementierung der Methoden unterFooDelegate
(zu verlangen, dass diese umgesetzt werden, verwenden Sie@required
statt@optional
). Der Letzte Schritt ist für eineFoo
Objekt instanziiert, das in der Klasse entsprichtFooDelegate
und für dieseFoo
Objekt, um seine Delegaten-Eigenschaft festgelegt:Nun, Ihre Klasse bereit ist, Nachrichten zu empfangen, die von
Foo
Objekte, die Ihre Delegierten ordnungsgemäß festgelegt.InformationsquelleAutor der Antwort Jonathan Sterling
Delegierten sind sehr nützlich, um zu Steuern, transfer innerhalb des Arrays view-Controller in der app manuell. Die Verwendung von Stellvertretern verwalten Sie die control-flow sehr gut.
hier kleines Beispiel der eigenen Delegierten....
SampleDelegate.h
auch oben einfügen DelegateName in der Delegate-Referenz < >
ownDelegateAppDelegate.h
ownDelegateAppDelegate.m
HomeViewController.h
HomeViewController.h
InformationsquelleAutor der Antwort iCrazyDev
Wenn das Objekt(s) in Frage hat seine
delegate
einer Klasse zugeordnet, die Sie schrieb, sagencontroller
dann die Methoden definiert, die für die Objekt Klassedelegate
Methoden müssen implementiert werden, durch die zugewiesene Klasse. Dies ermöglicht Ihnen, effektiv Steuern das Verhalten des Objekts ohne sub-classing Klasse des Objekts, um die override-Verhalten, die wahrscheinlich erfordern eine Menge zu duplizieren Verhalten. Es ist eine der saubereren teilen der cocoa-touch-design.Dies ist etwas, das Sie abholen sollte in den ersten paar intros und tutorials zu cocoa touch. Wie diese tutorial von Kakao ist meine Freundin. In der Tat, Sie haben die
delegate
Erklärung einer großen Fetten überschrift.InformationsquelleAutor der Antwort dlamblin
Starten, können Sie einen Blick auf das, was Apple zu sagen hat über die delegate-Methoden. Die Dokumentation stellt einige gut geschriebene Informationen über das, was die delegation zu verstehen ist, und erläutert, wie beide zu verwenden, AppKit Klassen definieren und zu unterstützen, eine Stellvertretung und wie code delegieren, Unterstützung in Ihren eigenen Objekten.
Sehen Die Kommunikation Mit Objekten
(Wenn Sie interessiert sind bei der Codierung Ihrer eigenen Delegierten unterstützt, überspringen Sie Sie nach unten zu "Implementieren Sie einen Delegaten für eine Benutzerdefinierte Klasse" Abschnitt.)
Der wichtigste Aspekt, Weg von delegate-Methoden ist, dass Sie ermöglichen es Ihnen, anpassen und beeinflussen das Verhalten eines Objekts, ohne die Notwendigkeit der Unterklasse.
Hoffe, das hilft Ihnen beim Einstieg.
InformationsquelleAutor der Antwort Sean Murphy