Was ist die genaue Bedeutung von Delegate in iPhone, wie es in UIViewController implementiert ist?Was ist Delegate in iPhone?
Antwort
Ein Delegat ist ein Objekt, das normalerweise auf ein Ereignis in einem anderen Objekt reagiert und/oder das Verhalten eines anderen Objekts beeinflussen kann. Die Objekte arbeiten zusammen, um eine Aufgabe zu vervollständigen. Normalerweise wird ein Delegatobjekt von vielen anderen Objekten gemeinsam genutzt, die eine spezifischere Aufgabe ausführen müssen. Der Delegat selbst wird abstrakter sein und sollte für verschiedene Aufgaben sehr wiederverwendbar sein. Das Objekt, das den Delegaten enthält, sendet dem Stellvertreter in der Regel eine Nachricht, wenn ein ausgelöstes Ereignis auftritt, und gibt dem Stellvertreter die Möglichkeit, seine angegebene Aufgabe auszuführen.
Es gibt mehr Dokumentation here, die Sie lesen sollten, um das Delegatenmuster in Cocoa und Cocoa touch zu verstehen, insbesondere mit der Delegierung zwischen UIWindow und UIView. Es ist ein integrales Entwurfsmuster in der iPhone-Architektur und eines, das beherrscht werden sollte, wenn Sie eine saubere Anwendung entwerfen möchten.
Delegation is a pattern und der Begriff bedeutet das gleiche in Kakao.
Ein Delegat ist nicht implementiert in ein UIViewController
. Verschiedene Arten von View-Controllern sind assign
ed ein Delegat, um bestimmte Aufgaben zu behandeln. Eines der besten Beispiele (wenn wir iPhone sprechen) ist die UITableViewDelegate
, die aufgerufen wird, bestimmte Dinge zu tun, wenn bestimmte tabellenbezogene Ereignisse auftreten.
Delegaten werden verwendet, um Aufgaben von Objekten an ihren Besitzer (oder jedes Objekt) zu delegieren. Ein guter Grund dafür ist, dass es einfacher ist, Komposition statt Vererbung zu verwenden. Delegierte sind ein Verweis auf ein Objekt, das einem bestimmten Protokoll entspricht, damit Sie sicherstellen können, dass die erforderlichen Methoden implementiert werden. Ein gutes Beispiel ist UIApplicationDelegate. Beachten Sie, dass die delegierten Methoden (aus dem Protokoll) Verben verwenden, die applicationDid, applicationShould, applicationWill usw. Normalerweise delegieren Methoden entweder um Erlaubnis, etwas zu tun (und wählen dies in einer Methode anstatt mit einer BOOL-Eigenschaft) , für mehr Flexibilität) oder benachrichtigen Sie den Delegierten eines Ereignisses, das passieren wird oder passiert ist.
Das Delegierungskonzept ist in iOS sehr verbreitet. Ein Objekt ist oft auf ein anderes Objekt angewiesen, um es bei bestimmten Aufgaben zu unterstützen. Diese Trennung von Bedenken hält das System einfach, da jedes Objekt nur das tut, was es gut kann und andere Objekte sich um den Rest kümmern. Die Tabellenansicht bietet ein gutes Beispiel dafür.
Ein Delegat wird verwendet, um zwei Objekte einer Klasse/Struktur zu übergeben, um eine Aufgabe abzuschließen. Zum Beispiel: Betrachten Sie firstVC (Sender oder Delegator oder CEO), die vertrauliche Daten an secondVC sendet (Empfänger oder Delegierter oder Sekretär). Dies geschieht, indem secondVC auf eine Objekte sowohl firstVC & secondVC
let sender = firstVC()
let receiver = secondVC()
erstellen
protocol passDataDelegate { func passdata(data: String) }
class secondVC : UIViewController, passDataDelegate {
func passdata(data: String) {
print("CEO passed //(data)")
}
}
class firstVC : UIViewController {
var delegate : passDataDelegate?
}
konform Nun Da Empfänger Protokoll entspricht passDataDelegate
. Es gibt also entweder UIViewController
oder passDataDelegate
, denn wenn eine Klasse einem Protokoll entspricht, kann das Objekt seiner Klasse ein Protokoll als Typ haben.
Daher vergeben sender.delegate = receiver
Jetzt können wir CEO (Sender) kann Daten an Secretary übergeben (Empfänger) durch seine Delegierten Eigenschaft als
sender.delegate?.passdata("Confidential data")
Output: CEO passed Confidential data
nun der Sekretär (Empfänger), dass die Daten verwenden können, um ihre weitere Aufgabe zu erledigen.
- 1. Was ist Delegate and Delegate Methoden
- 2. Was ist `delegate` in einer Rails-Objektdatei?
- 3. wie Anwendung delegate Methode in iphone
- 4. Was bedeutet .delegate = self?
- 5. Mac OSX/iPhone Fehlerbehandlung im App Delegate?
- 6. iPhone ordnungsgemäße Verwendung von Application Delegate
- 7. Was ist die iPhone Bildschirmauflösung?
- 8. Was ist der Unterschied zwischen .delegate() und live()?
- 9. iPhone SDK: UIActionsheet Delegate-Methode wird nicht aufgerufen
- 10. Application Delegate - Cocoa
- 11. Was ist die Schwanzabschneidungsmarkierung auf dem iPhone?
- 12. Inside UIViewControllerAnimatedTransitionierung Delegate, die TransitionContext.fromViewController ist Null
- 13. Triple Delegate
- 14. Was ist die Anwendungs-Heap-Größe in iPhone?
- 15. Was ist der Unterschied in iPhone OS 3.0 und 3.0.1
- 16. Was ist eine fooBar.category-Datei in iPhone OS?
- 17. Groovy: Delegate Eigenschaft in enum
- 18. UIACtionSheet Delegate Frage
- 19. Was ist der Unterschied zwischen iPhone-Gerät UDID, iPhone-Geräte-ID und iPhone-Gerät Token?
- 20. Langsame Delegate Erstellung
- 21. UIImage Gif loading delegate?
- 22. Delegate-Typen dynamisch in C#
- 23. Best Application Delegate Practice
- 24. Delegate und DataSource Klassenname
- 25. JavaScript repetitive Delegate Erstellung
- 26. Generalisierende Delegate/IAsyncResult-Aufrufe
- 27. Was ist Nhibernate CurrentContext
- 28. Was ist die alternative Möglichkeit, Tomcat-Kontextdatei mit <Loader delegate = true />
- 29. Was ist der Unterschied zwischen einem Delegate-Erstellungsausdruck und einer Methodengruppenkonvertierung?
- 30. Was ist die Delegate-Methode für Ios Google Maps für das Scrollen fertig?
der Link ist tot – lindenrovio
ein weiterer nützlicher Link hier - [link] (https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html) –