J'utilise la version bêta de Xcode pour les développeurs et je remarque des différences subtiles. Parmi eux, un nouvel attribut pour les propriétés déclarées.
@property(strong)IBOutlet NSArrayController *arrayControl;
Ma question est: que signifie l'attribut fort ?? Remplace-t-il un ancien, ou est-ce quelque chose de complètement nouveau? J'ai cherché dans google et dans la documentation du développeur et je n'ai rien trouvé. Jusqu'à ce que je sache ce que c'est, j'hésite à l'utiliser.
Merci d'avance
C'est un remplacement de l'attribut retain
, dans le cadre de Objective-C Automated Reference Counting (ARC) . En code non-ARC, c'est juste un synonyme de retain
.
Une référence forte est une référence à un objet qui l'empêche d'être désalloué. En d'autres termes, cela crée une relation de propriétaire. Alors qu'auparavant vous le feriez:
**// Non-ARC Compliant Declaration
@property(retain) NSObject *obj;**
Sous ARC, nous faisons ce qui suit pour garantir qu'une instance de classe prend un intérêt de propriété sur un objet référencé (c'est-à-dire qu'il ne peut pas être désalloué tant que le propriétaire ne l'est pas).
**// ARC Compliant Declaration
@property(strong) NSObject *obj;**
Comme nous le savons, nous ne pouvons libérer aucun objet dans un projet basé sur ARC dans iOS 5. Donc, lorsque nous voulons conserver un objet pour une utilisation ultérieure à un stade ultérieur et que nous ne voulons pas que ARC supprime l'objet de la mémoire, nous définissons la propriété de l'objet comme "Strong".