45 votes

Quels sont les attributs par défaut des propriétés Objective-C?

Quels sont les attributs par défaut pour un emptypty lorsque vous n'en listez aucun dans l'objectif C?

Comme par exemple si j'écrivais ceci:

 @property float value;
 

Quelles seraient les valeurs par défaut, comme s'il était en lecture seule, est-ce qu'il conserve ... etc??

68voto

justin Points 72871

La valeur par défaut/valeurs implicites sont atomic, readwrite, et assign.

atomique

Cela signifie que la valeur est en lecture/écrite de manière atomique. Contrairement à une certaine idée fausse populaire, l'atomicité n'est pas à assimiler à la sécurité des threads. En termes simples, il garantit que la valeur de la lire ou l'écrire va être lues ou écrites dans son ensemble (lorsque les accesseurs sont utilisés). Même lorsque vous utilisez des accesseurs de tous les temps, il n'est pas strictement thread-safe.

readwrite

La propriété est donnée un setter et getter.

attribuer

Cette valeur par défaut est habituellement utilisé pour les POD (Plain Old-Données) et builtin types (par exemple, int).

Pour NSObject types, vous favorable à la tenue d'une référence forte. Dans la majorité des cas, vous allez déclarer la propriété copy, strongou retain. assign effectue pas de compte de référence des opérations. Voir aussi: http://clang.llvm.org/docs/AutomaticReferenceCounting.html#property-declarations

fort

La propriété peut être implicitement strong sous l'ARC dans certains cas:

Une propriété de retainable objet de type pointeur qui est synthétisé sans une source de la propriété est la propriété de ses associés variable d'instance, si elle existe déjà; sinon, [début de Pomme 3.1, LLVM 3.1] propriété du bien est implicitement forte. Avant cette révision, il a été mal formé à synthétiser de tels biens.

7voto

klaudz Points 120

il est égal à

 @property (atomic, readwrite, assign) float value;
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X