2012-02-22 9 views

Respuesta

27

Usted puede declarar de esta manera también.

@property (assign) BOOL locationUseBool; 

Básicamente, si usted dice que no atómica, y se genera utilizando los descriptores de acceso @synthesize, a continuación, si varios subprocesos intentan cambiar/leer la propiedad a la vez, la maldad puede suceder. Puede obtener valores escritos parcialmente o objetos liberados/retenidos

En un programa de subprocesos múltiples, una operación atómica no puede interrumpirse parcialmente, mientras que las operaciones no atómicas pueden hacerlo.

25
@property (nonatomic, assign) BOOL locationUseBool; 

Sin asterisco, sin copia, sin retener.

+1

O puede omitir por completo el segundo parámetro (valor predeterminado para asignar). – Alexander

+0

Para la claridad del código, no lo recomendaría. – Sulthan

+0

Considere también usar el tipo oficial C99 'bool'. Tiene mejor comportamiento cuando se lanza, etc. – JeremyP

1

Este me funcionó.

@property (nonatomic) BOOL locationUseBool; 

No hay asterisco * en la declaración de propiedad. Además, el uso de 'assign' es opcional.

Cuestiones relacionadas