[Débutant] @property épargne la définition des variables ?
colas_
Membre
Bonjour,
selon où je regarde, je vois des fois :
et d'autres fois
La seconde méthode est-elle valable ?
Merci !
PS : n'est-elle pas préférable dans le cas des outlets, pour ne pas oublier les getters et setters ?
selon où je regarde, je vois des fois :
<br />
@interface MaClasse : NSViewController<br />
{<br />
NSString * maVariable ;<br />
NSString * maVariableOutlet ;<br />
}<br />
@property(copy) NSString * maVariableOutlet ;<br />
et d'autres fois
<br />
@interface MaClasse : NSViewController<br />
{<br />
NSString * maVariable ;<br />
}<br />
@property(copy) NSString * maVariableOutlet ;<br />
La seconde méthode est-elle valable ?
Merci !
PS : n'est-elle pas préférable dans le cas des outlets, pour ne pas oublier les getters et setters ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il n'y a vraiment que si tu codes encore pour OSX 32 bits que tu dois les rajouter si je ne dis pas de bétises, car OSX 32 bits est le seul qui utilise encore le Legacy Runtime (l'ancien Runtime Objective-C, devenu obsolète depuis, et à qui il commence à manquer plusieurs petits avantages sur le Modern Runtime utilisé partout aujourd'hui)
Après, si tu veux quand même déclarer explicitement ces variables d'instances associées aux propriétés, tu peux le faire. Certains bouquins ou tutos le font encore d'ailleurs, tout simplement par force d'habitude, parce que les personnes qui écrivent ces tutos ont appris à coder du temps du Legacy Runtime, d'OSX 32 bits et d'Objective-C 1.0, et ont gardé l'habitude, mais ce n'est plus nécessaire depuis le Modern Runtime et Objective-C 2.0 !
Pour info, si une property est déclarée en readonly et que le getter est réimplémenté, il faut déclarer la variable associée.
De même si une property en readwrite a son getter et son setter de réimplémentés.
En fait, à partir du moment où une des méthodes déclarées grâce au property est implémentée de manière automatique, la déclaration de la variable n'est plus nécessaire.
Et une property nommée myProperty, en l'absence de @synthesize, voit sa variable déclarée sous le nom _myProperty.
https://developer.ap...sPlatforms.html