Je n'ai vraiment pas vraiment commencé le développement iOS, mais j'ai quelques années de dev d'asp.net à travers C #. Pour être honnête, je n'ai jamais eu de besoin réel de comprendre les délégués / événements, etc. Auparavant, je sais que je les utilise lorsque je les utilise lors de la programmation Web.Forms mais beaucoup de fonctionnalités sont prises en charge par le cadre, dans les coulisses .
Alors maintenant que je développe dans iOS, je suis obligé d'essayer de comprendre comment ils fonctionnent (je présume ici que la théorie des délégués / événements est la même dans les langues, peut-être que je me trompe). Quoi qu'il en soit, la ligne de code suivante dans iOS: p> suis-je juste en pensant que, dans le code pseudodique, cela signifie quelque chose dans le sens de: p> Si la méthode / la classe appelant cette méthode a une méthode appelée «startimporting» puis appelez la méthode «démarrage» dans la classe d'appel. P> espère que c'est clair. Si tel est le cas, cela serait-il essentiellement la même chose que d'avoir une méthode statique en C # que vous pouvez appeler avec quelque chose comme: p> probablement pas, ou c'est comme ça que ce serait terminé. Donc, je manque tout le point de délégués, leurs avantages, etc.? J'ai lu ce qu'ils sont encore et encore et tandis que cela a du sens, il ne cline jamais, je n'ai jamais (dans des formes Web de toute façon) ont vraiment vu le bénéfice de l'utilisation. P> Cela devient de plus en plus important que je «M Publiez à utiliser des expressions Lambda dans .NET et ils sont étroitement liés aux délégués en C #, alors que je peux simplement commencer à les utiliser, je préférerais savoir pourquoi et quels sont les délégués des prestations. P> P> P> P> P> P> P> >
3 Réponses :
Comprendre le modèle MVC et l'utilisation de protocoles et de notifications est essentiel pour saisir l'utilisation et le but des délégués. Pensez à eux comme types de répondeurs pour différents événements liés à une action spécifique. p>
HERA sont des liens utiles dans Stackoverflow: P>
espère qu'il aide p>
Le modèle de délégation à Cocoa est utilisé pour informer (de l'avancement, etc.) ou d'une requête (demander des informations d'identification, etc.) un autre objet sans le savoir beaucoup à son sujet.
En règle générale, vous utilisez un protocole pour définir quelles méthodes vous appellerez le délégué et le délégué doit alors se conformer à ce protocole. Vous pouvez également ajouter des méthodes que le délégué n'a pas besoin de mettre en œuvre (en option). Lorsque vous le faites, vous devez appeler -respondsToSelector :, parce que vous ne savez pas si le délégué souhaite que la méthode particulière à appeler ou non p>
Un exemple:.
Vous avez une classe qui produit quelque chose, Appelons-le machine code> et un travailleur du
catégorie des travailleurs code>. Les besoins de la machine à régler pour la tâche: p>
@protocol MachineDelegate <NSObject>
@required
- (Color *) colorForStuffBeingProducedInMachine:(Machine *)machine;
- (BOOL) machineShouldGiftWrapStuffWhenDone:(Machine *)machine;
@end
Réponse incroyablement complète. Merci!
Excellent! a commencé à comprendre les délégués après avoir lu cette réponse :)
C'est le meilleur exemple de délégué de l'objectif-C que j'ai rencontré jusqu'à présent
Les délégués sont utiles pour obtenir des rappels d'une autre classe
alors pourquoi utiliser le délégué: C'est nous appelons une méthode sur une classe ... c'est normal ... Si nous voulons que la classe instanciée nous permet de rappeler ... C'est là que les délégués sont utiles ... P>
Exemple simple:
Vous téléchargez des chansons à partir d'un site à l'aide d'une méthode sur une classe
Une fois que la classe complète le téléchargement, vous voulez que la classe vous informait. p> Voir la délégation est obtenue par le biais du protocole dans l'objectif c. Je pense que vous pouvez comprendre la syntaxe de celle-ci. P> li>
dans la classe des chansons Nous créons une propriété pour ce protocole. Nous conservons le type comme id ... car le type n'est pas connu à l'heure de la compilation. P> li>
dans la classe de chansons une fois que nous avons terminé le téléchargement, nous appelons la méthode de protocole ... p> li>
dans la classe principale d'abord, nous adoptons la syntaxe de protocole
classer
Ce qui précède est la syntaxe de ce p> li>
Nous instancions la classe de chansons p> li>
Attribuez ensuite l'objet de la classe principale (auto) au délégué de la classe de chansons p> li>
Ensuite, nous devons appliquer la classe de protocole dans .m en ajoutant le nom de la méthode du protocole P> LI>
Donc, à partir de maintenant, lorsque la classe de chansons appelle la méthode du protocole via une variable d'instance de délégué .... Out Protocole L'adoption sur la classe principale est exécutée p> li>
ol> Essayez ce code espérons qu'il aide ... p> Si vous souhaitez plus d'informations sur ce sujet Google It, comme modèle de conception de délégué P> Le principal avantage est
Il favorise la programmation de manière lâche ... p> p>
Ici Stackoverflow.com/Questtions/30662032/... Vous pouvez trouver des détails de mise en œuvre pour les délégués.