Lorsque vous examinez du code Objective-C, les propriétés de classe sont souvent définies comme non atomiques. Pourquoi? Cela vous donne-t-il un regain de performance lorsque vous ne travaillez pas avec des threads, ou y a-t-il une autre raison?Propriétés non atomiques du cacao
Répondre
nonatomic
Les accesseurs sont plus rapides car ils n'ont pas besoin de se verrouiller. C'est à peu près tout ce qu'il y a à faire. De l'documentation:
Si vous ne spécifiez pas
nonatomic
, puis dans un environnement compté de référence d'un accesseur synthétisé pour une propriété d'objet utilise un verrou et conserve et autoreleases la valeur la retournée mise en œuvre sera semblable à les éléments suivants:[_internal lock]; // lock using an object-level lock id result = [[value retain] autorelease]; [_internal unlock]; return result;
Si vous spécifiez
nonatomic
, puis un accesseur synthétisé pour une propriété d'objet retourne simplement la valeur directement.
Merci pour cette réponse rapide . Je savais avant comment fonctionnent les propriétés nonatomiques, je ne savais pas l'avantage de les utiliser :-) –
double possible [propriétés Objective-C: atomique vs nonatomic] (http://stackoverflow.com/questions/588866/objective-c-properties-atomic-vs-nonatomic) – bbum