web-dev-qa-db-fra.com

Quel est l'attribut de propriété fort

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

79
Chance Hudson

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.

95
Lily Ballard

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;**
10
Jack Farnandish

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".

4
sanjeev sharma