2010-08-10 8 views
0

J'ai deux classes, En classe A je crée une variable que je dois utiliser dans la classeB, devrais-je utiliser la propriété?accéder à une variable d'une autre classe via une propriété

est là quelqu'un pour m'expliquer plus facile, comment définir StringValue de variable dans une classe pour le champ de texte d'une autre classe?

grâce

+2

Avez-vous vu http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html? – Vladimir

Répondre

1
+0

lien brisé? cela offre maintenant seulement l'hébergement. – Jimmery

+0

Désolé d'entendre cela. N'hésitez pas à chercher sur le Web et à briser le lien si vous le souhaitez. Je l'ai trouvé à l'origine via la recherche web de toute façon –

0

La réponse simple est oui, les propriétés d'utilisation, c'est-ce qu'ils sont: une façon simple d'exposer l'état d'un objet d'autres objets.

La réponse la plus longue est que Objective-C 2.0 properties sont juste une enveloppe autour du concept de Key-Value-Coding et Key-Value-Observing (KVC/KVO).

Cela vaut la peine de lire la documentation à ce sujet car le concept est fondamental dans la façon dont fonctionne Cocoa et sa compréhension au début de votre processus d'apprentissage vous évitera beaucoup de problèmes à l'avenir. Et, comme vous allez passer des références d'objet autour, je pourrais aussi bien ajouter un lien vers le Memory Management Programming Guide qui vous aidera à appliquer correctement les attributs de gestion de la mémoire à vos déclarations @property.

+0

Les propriétés sont juste une syntaxe formelle pour déclarer les méthodes d'accès et (dans l'exécution moderne) les variables d'instance. KVC est un moyen d'accéder à une telle propriété, qu'elle ait été officiellement déclarée ou non. La distinction est que 'foo.bar' envoie directement un message' bar' à 'foo', exactement comme' [foo bar] 'le ferait, alors que KVC * recherchera * une méthode comme' bar' ou '_bar' et seulement envoyer un message s'il en trouve un (et il jettera un coup d'oeil sur le 'bar' ou' _bar' ivar s'il ne trouve pas de méthode). Ainsi, KVC se trouve principalement au-dessus des propriétés; les propriétés n'emballent pas KVC. –

+0

J'essayais de dire que les propriétés simplifient la création d'accesseurs compatibles KVC, même jusqu'à '@synthesize _iVar = iVar;' – Abizern

+0

y at-il quelqu'un pour m'expliquer plus facilement comment régler StringValue d'une variable d'une classe au champ de texte d'une autre classe? – aden

Questions connexes