2011-11-09 3 views
1

J'ai travaillé sur plusieurs livres sur le code X, les fichiers de documents Apple et les tutoriels YouTube. Je remarque, cependant, que certains auteurs (certains livres) placent des déclarations @property pour tous leurs IBOutlets - images, étiquettes et boutons, tandis que dans d'autres livres, les objets listés dans l'en-tête ne sont pas "propriété" et synthétisés dans le .m. Je sais que ça a quelque chose à voir avec les setters, les getters et les accesseurs, mais est-ce que quelqu'un voudrait clarifier pour moi (sans ces mots, si possible) quand vous utilisez @property et quand vous ne le faites pas? Désolé d'avoir posé une question qui me semble stupide, mais je n'ai pas encore une compréhension intuitive de ce qui se passe vraiment.@property parfois pas utilisé

Merci.

-Rob

+0

Hey @Rob Smythe J'espère que vous voyez, mais je juste regardé sur votre compte. Il s'avère que vous avez posé comme 5 questions, avec des personnes qui ont répondu à la question, mais vous n'avez pas donné une seule «meilleure réponse». Quand quelqu'un répond à vos questions et résout vos problèmes, vous appuyez sur la petite coche verte à côté de leur réponse. Comme juste en dessous de tout ce texte, est-ce que vous voyez le # 1 avec les flèches pointant vers le haut et vers le bas sur le côté gauche de ma réponse? Il y a une petite coche là-bas. – Gabe

+0

Voir: Comment fonctionne l'acceptation d'une réponse? http://meta.stackexchange.com/q/5234 – NJones

Répondre

2

Chaque fois que vous devez modifier quelque chose comme un UIButton ou tout ce que vous avez besoin d'utiliser un pointeur pour y accéder, vous utilisez la @property. Tout cela ne crée que des méthodes 'Getter and Setter'. Si vous avez programmé dans une autre langue, vous comprenez probablement ce que c'est, mais si ce n'est pas le cas, c'est difficile à expliquer. Si vous voulez mieux comprendre pourquoi @property existe, j'apprendrais du C++. Mais ci-dessous est une explication en Objective C termes de ce qu'il est

Le @property est une directive Objective-C qui déclare la propriété. Le paramètre "retain" entre parenthèses spécifie que le setter doit conserver la valeur d'entrée et le reste de la ligne spécifie simplement le type et le nom de la propriété.

#import "Photo.h"  
    @implementation Photo 

    @synthesize caption; 
    @synthesize photographer; 

    - (void) dealloc 
    { 
     [caption release]; 
     [photographer release]; 
     [super dealloc]; 
    } 

    @end 

La directive @synthesize génère automatiquement les setters et getters pour nous, donc tout ce que nous devons mettre en œuvre pour cette classe est la méthode dealloc.

site Grande que j'ai obtenu ces informations à partir, et a beaucoup plus: http://cocoadevcentral.com/d/learn_objectivec/

Questions connexes