11
votes

Qu'est-ce que @Dynamic dans iPad / iPhone

Je me demandais simplement ce que l'on entend par @Dynnamic dans l'objectif-c et comment cela fonctionne. Aide de l'aide s'il vous plaît


0 commentaires

3 Réponses :


2
votes

Utiliser @Dynamic exige que vous fournisiez vous-même des méthodes getter / setter.

à la place @Synthesize crée les méthodes Getter / Setter pour vous.


1 commentaires

Certaines classes généreront des méthodes automatiquement, telles que NSManageDObject.



6
votes

Je cite le livre d'Apple Le langage de programmation Objective-C :

@Dynamic

Vous utilisez le mot-clé @Dynynamique à dire le compilateur que vous remplirez le Contrat API impliqué par une propriété soit en fournissant la méthode implémentations directement ou à l'exécution en utilisant d'autres mécanismes tels que dynamique Chargement de code ou de méthode dynamique résolution. Il supprime les avertissements que le compilateur aurait autrement générer s'il ne peut pas trouver approprié implémentations. Vous devriez l'utiliser seulement si vous savez que les méthodes vont être disponible au moment de l'exécution.

Vous pouvez trouver une copie pdf ici .


0 commentaires

13
votes

@Dynamic signifie que vous fournirez une mise en œuvre de ces méthodes de manière dynamique au moment de l'exécution.

http://developer.apple.com/library/ Mac / # Documentation / Cocoa / Conceptual / ObjcruntimeGuide / Articles / OCRTDYNAMICRESOLUTION.HTML

a tous les détails, mais en utilisant essentiellement @Dynamic signifie que vous promettez de fournir des implémentations pour les méthodes promises de la propriété à l'exécution.

En particulier regarder ici;

http://developer.apple. com / bibliothèque / mac / # documentation / cacao / référence / fondation / classes / nsobject_class / référence / référence.html

Pour un exemple de la façon dont vous construirez votre méthode dynamique et placez-la dans l'exécution.

Les données de base utilisent ce mécanisme pour fournir aux accesseurs. C'est assez incroyablement cool, une fois que vous avez creusé dessus :)

et comme une note latérale, la méta-programmation à l'OBJC n'est pas fausse pour les faibles de cœur, ne l'expédiez pas avant de le greffer, sinon vos utilisateurs souffriront.


0 commentaires