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
, strong
ou 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.