J'ai essayé de comprendre cela que je promets! Il y a une richesse d'informations là-bas et je suis toujours inondé dans une mer de concepts abstraits! C'est comme quand j'étais enfant et personne ne pouvait m'expliquer pourquoi un pays ne pouvait pas simplement imprimer plus d'argent et être vraiment riche. Je ne suis pas en retard avec la plupart de ces choses, mais pour une raison quelconque, je ne peux pas envelopper ma tête autour de ce concept, alors j'apprécierais vraiment que quelqu'un puisse l'épeler comme condescendant "parler à un enfant de 4 ans" lentement possible ! p>
Je pense que la cible-action a un sens complet pour moi. C'est un moyen utile de permettre de parler à un contrôleur sans avoir à faire beaucoup de choses. Pour autant que je puisse dire, un objet de contrôleur attache efficacement un auditeur à l'objet d'affichage afin que si un événement particulier se produise sur cette vue (bouton enfoncé), il tire la méthode du contrôleur. Cela peut ne pas être techniquement précis, mais comme une explication abstraite, cela a du sens pour moi. P>
donc la séquence est: p>
protocoles et délégués me sont battus. Je sais que c'est quelque chose à faire avec permettre aux objets de se parler, mais j'essayais d'écrire mon (manque de) de la compréhension jusqu'à présent ci-dessous et de la supprimer tout comme je pense qu'il est préférable de ne pas décoller les nœuds de ma pensée actuelle, mais simplement Essuyez l'ardoise et commencez à nouveau. Si quelqu'un pourrait certainement passer un peu de temps à expliquer le but de p>
Je serais éternellement reconnaissant. p>
À en juger par certains des commentaires sur d'autres explications, je sens que je ne suis pas le seul un peu perdu au moins, j'espère que cela sera d'une utilisation générale. Merci beaucoup! P>
EDIT: P>
D'accord comme je pensais peut-être que si je viens de comprendre ma compréhension, les gens peuvent me corriger, et cela pourrait rendre cela plus facile. P>
Mon échantillon est pris à partir du Apple Documents , avec une fenêtre comme objet d'affichage et fenêtreDelegate comme délégué, où un clic sur le bouton Fermer la fenêtre déclenche un" Dois-je fermer? " Message au délégué. P>
constituants du code: Fenêtre (vue) WindowDélégate (contrôleur de vue?) P>
n'importe où sur les bonnes lignes? p>
4 Réponses :
Pour les délégués, vous pourriez avoir un coup d'œil à Cette question a >. P>
Pour les protocoles, vous voudrez peut-être vérifier cette question a> ou regarder le Documentation a>. p>
J'espère que cela vous aide! P>
Merci, cela m'a conduit à quelques choses que je n'avais encore pas vue, toujours en difficulté.
Il y a tout un tas de trucs ici et ça sonne comme si vous avez quelques choses confuses. p>
Tout d'abord, je vous suggérerais de faire le site du développeur Apple et de télécharger l'objectif d'apprentissage-C: un apprêt et des livres de langage de programmation de l'objectif. Ignorer les trucs de câblage d'interface cible / interface d'action pour le moment car cela ressemble à vous devez comprendre quelques bases de l'objectif C. C'est ici que vous découvrirez tous les protocoles, etc. et d'autres éléments orientés objet. p>
Deuxièmement, il existe un certain nombre de très bons livres qui vous mèneront pas à pas en développant une application. Développement de l'iPhone 4 à partir de: Explorer le SDK iOS est celui qui est bien considéré. C'est aussi où vous allez découvrir des délégués. p>
Dépenser troisièmement plus de temps dans la documentation. La documentation SDK a de nombreux articles décrivant la manière dont les choses fonctionnent à partir d'un niveau très basique et que le site de développeur Apple a également beaucoup. p>
+1 pour 'Objective Objective-C: A Primer'. Je me souviens de l'apprentissage de l'objectif - C pour la première fois que ce document m'a vraiment aidé!
Merci, je travaille à travers les conférences de Stanford pour le moment, je les trouve plus instructives que les livres que j'ai. Je suis au cinquième pour le moment, j'ai assez bonne compréhension des bases de l'objectif-c, il s'agit davantage de l'application dans Xcode que je me trompe. Je comprends que la référence de l'action cible ci-dessus peut sembler sans rapport, mais le conférencier a fondé le conférencier décrit l'action et le protocole / le délégué comme les deux méthodes de contrôle des contrôleurs et des vues pour communiquer, pourquoi je l'ai inclus.
Dans une certaine mesure, ils sont similaires. Cible / action est quelque chose spécifique à Xcode et à l'objectif C, car il fournit essentiellement ce que nous appelons des méta-données sur votre demande. Lors de la compilation, Xcode utilise ensuite ces informations Connectez les choses pour vous, ce qui vous permet d'économiser manuellement écrire le code pour le faire. Le modèle de délégué est indépendant de la langue. Par exemple, je pourrais l'utiliser dans une application Java. Donc, la compréhension du concept du modèle de délégué vous aidera plus largement lorsque vous comprenez comment les opérations cible / actions vous aideront plus spécifiquement à une application de l'objectif C.
Comprendre les délégués, examinez les délégués fournis par le cacao. Par exemple, Nswindow a une méthode déléguée appelée - (vide) WindowWillClose: (NSnotification *) Anotiformation Si vous mettez en œuvre cette méthode de délégation, vous examinez la notification pour déterminer quelle fenêtre est sur le point d'être fermée et effectuer un certain nettoyage pour cette fenêtre. Vous êtes un délégué pour l'objet Nswindow en ce sens que vous faites du travail pour l'objet Window. p>
Toutes les méthodes de délégués de cacao ont des noms qui incluent des mots tels que "DID", "Will", "devrait", etc. Ils donnent à votre code la capacité de faire des choses spéciales en plus des choses normales qui auraient fait ces objets eux-mêmes - vous êtes donc un délégué pour ces objets. P>
Les délégués existent pour vous aider à éviter le sous-classement. P>
Le sous-classement est quelque chose que vous devriez toujours essayer d'éviter, car il s'agit d'une forme de couplage très serrée. Le couplage est lorsque deux objets dépendent de l'autre pour fonctionner correctement, et plus vous avez de couplage, plus il est difficile de modifier votre programme (car chaque fois que vous devez changer un objet, vous serez obligé de modifier les autres objets qui en dépendent). p>
Le sous-classement de la raison est une forme de couplage est dû au fait que lorsque vous sous-classe d'une superclasse, votre sous-classe dépendra des méthodes de la superclasse (que la sous-classe héritée). Donc, si vous devez changer la superclasse, vous pourriez éventuellement avoir à changer toutes les sous-classes avec elle. P>
Dites que vous voulez avoir un tas d'objets qui sont exactement les mêmes, à l'exception de ce qu'ils font avec une méthode. En sous-classement, vous devrez créer un tas de sous-classes différentes et écraser cette méthode sur chacune d'elles, ce qui serait beaucoup de sous-classement (couplage indésirable). C'est là que les délégués entrent dans les délégués. Plutôt que de sous-classe un tas de fois, vous pouvez simplement créer une classe une classe et la concevoir de posséder un objet de l'ID de type anonyme, qui sera l'objet délégué (nous l'appellerons l'enfant. ). Cet objet enfant aura la méthode unique unique qui était auparavant dans le parent, mais le parent déclenchera maintenant la méthode sur l'objet enfant. p>
Donc plutôt que de sous-classer un tas de fois, nous créons un tas d'instances de la même classe et donnons à chacun un objet de délégué différent, que nous pouvons faire car l'identifiant de type ne spécifie pas quel type d'objet que nous devons utiliser. Chaque objet de délégué différent implémente cette méthode différemment, et nous évitons le sous-classement. P>
Related: