qual è il significato esatto di delegato in iphone? Come è implementato in UIViewController?cosa è Delegato in iPhone?
risposta
Un delegato è un oggetto che di solito reagisce a qualche evento in un altro oggetto e/o può influire sul comportamento di un altro oggetto. Gli oggetti lavorano insieme per il bene di completare un compito. In genere un oggetto delegato sarà condiviso da molti altri oggetti che hanno un'attività più specifica da eseguire. Il delegato stesso sarà più astratto e dovrebbe essere molto riutilizzabile per diversi compiti. L'oggetto che contiene il delegato in genere invia al delegato un messaggio quando si verifica un evento innescato, dando al delegato l'opportunità di svolgere l'attività specificata.
C'è più documentazione here da leggere per comprendere lo schema dei delegati nel tocco Cocoa e Cocoa, in particolare con la modalità di utilizzo della delega tra UIWindow e UIView. È un modello di progettazione integrale nell'architettura di iPhone e uno che dovrebbe essere padroneggiato se si desidera progettare un'applicazione pulita.
Delegation is a pattern e il termine indica lo stesso in Cocoa.
Un delegato non è implementato in a UIViewController
. Diversi tipi di controller di visualizzazione sono assign
ed un delegato per gestire determinate attività. Uno dei migliori esempi (se stiamo parlando di iPhone) è lo UITableViewDelegate
, che è chiamato a fare certe cose quando si verificano determinati eventi relativi alla tabella.
I delegati sono utilizzati per delegare compiti di oggetti al proprietario (o qualsiasi oggetto, in realtà). Una buona ragione per questo è che rende più facile usare la composizione invece dell'ereditarietà. I delegati sono un riferimento a un oggetto conforme a un protocollo specificato, pertanto è possibile garantire che implementerà i metodi richiesti. Un buon esempio è UIApplicationDelegate. Nota come i metodi delegati (dal protocollo) usano verbi che applicationDid, applicationShould, applicationWill ecc. In genere delegano i metodi o chiedono il permesso di fare qualcosa (e scelgono di farlo in questo modo, in un metodo, piuttosto che con solo una proprietà BOOL , per maggiore flessibilità) o notificare al delegato un evento che si verificherà o è accaduto.
Il concetto di delega è molto comune in iOS. Un oggetto si affiderà spesso a un altro oggetto per aiutarlo con determinate attività. Questa separazione delle preoccupazioni mantiene il sistema semplice poiché ogni oggetto fa solo ciò che è buono e lascia che gli altri oggetti si occupino del resto. La vista tabella offre un ottimo esempio di questo.
Un delegato viene utilizzato per comunicare/passare dati in bianco e nero due oggetti di una classe/struttura per completare un'attività. Ad esempio: considerare firstVC (mittente o delegato o CEO) che invia dati riservati a secondVC (ricevente o delegato o segretario). Questo viene fatto facendo secondVC conforme a un
protocol passDataDelegate { func passdata(data: String) }
class secondVC : UIViewController, passDataDelegate {
func passdata(data: String) {
print("CEO passed //(data)")
}
}
class firstVC : UIViewController {
var delegate : passDataDelegate?
}
Ora creare oggetti di entrambi firstVC & secondVC
let sender = firstVC()
let receiver = secondVC()
Dal momento che, il ricevitore è conforme al protocollo passDataDelegate
. Quindi, sta digitando o come UIViewController
o passDataDelegate
perché se una classe è conforme a un protocollo allora l'oggetto della sua classe può avere il protocollo come tipo.
Quindi, assegnare sender.delegate = receiver
Ora, siamo in grado di CEO (mittente) in grado di trasmettere i dati al Segretario (ricevitore) tramite la proprietà delegato come
sender.delegate?.passdata("Confidential data")
Output: CEO passed Confidential data
Ora il segretario (ricevitore) in grado di utilizzare tali dati per completare il suo ulteriore compito.
- 1. iPhone - MFMailComposeViewController delegato tipo incompatibile
- 2. A cosa punta un delegato?
- 3. Che cosa sta facendo questo metodo delegato?
- 4. iPhone - Che cosa sono riutilizzatori (UITableViewCell)?
- 5. Cosa fa il delegato dell'app in un progetto xcode?
- 6. Parola chiave delegato o delegato
- 7. Gestione degli errori Mac OSX/iPhone nel Delegato app?
- 8. Come convertire un delegato in delegato identico?
- 9. Delegato applicazione - Cacao
- 10. Delegato in C++ 11
- 11. Delegato predefinito in C#
- 12. Delegato NSTextFieldCell?
- 13. . Trova con Delegato. Cosa restituisce se non viene trovato?
- 14. qual è la differenza tra didselectrowindexpath e willselectrowindexpath in iphone?
- 15. delegato all'azione. Come ottenere informazioni sui metodi chiamate in delegato?
- 16. C#: Azione delegato vs delegato esplicito
- 17. Cosa è ** in C++?
- 18. Perché il delegato CLLocationManager non viene chiamato in iPhone SDK 4.0?
- 19. Delegato semplice (delegato) e delegati multicast
- 20. Che cosa misura esattamente l'accelerometro iPhone?
- 21. Cosa usare se non "IPHONE UDID"?
- 22. UISplitViewController delegato in un singleton
- 23. un costruttore come delegato - è possibile in C#?
- 24. È possibile utilizzare la parola chiave params in un delegato?
- 25. Perché il "questo" puntatore è nullo in un delegato?
- 26. Esiste un delegato che non è un MulticastDelegate in C#?
- 27. Accesso delegato proprietà in Kotlin
- 28. UIAlertView veramente modale in iPhone?
- 29. Fusioni delegato Func in C#
- 30. Chiamare programmaticamente lo storyboard in delegato
il link è morto – lindenrovio
un altro link utile qui - [link] (https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html) –