martes, 14 de diciembre de 2010

@Property

@property (nonatomic) NSString* titulo
nonatomic implica que si generamos accesores mediante @synthesize y estamos usando multi thread, podría provocar que se acceda a la propiedad desde distintos origenes al mismo tiempo, pudiendo generar mal comportamiento de la aplicación.
Si no existe nonatomic, sucederá lo contrario y los accesores (get/set) serán seguros en un entorno multi thread (Varios hilos de ejecución).

@property (assign) NSString* titulo
assign generará un setter que asigna el valor directamente a la variable, en vez de copiarlo o retenerlo.
Esto es lo mejor para objetos como NSInteger o CGFloat u objetos que no poseemos directamente como delegados.

@property (readonly) NSString* titulo
readonly implica que el set no será creado por lo que no deberá ser usado en conjunto con copy/retain/assign

@property (retain) NSString* titulo
retain apunta la variable a un dato y suma 1 al contador de referencias, garantiza que los datos estarán allí mientras la variable este con vida.
con retain estamos diciendo al administrador de memoria que hay por lo menos un objeto interesado en almacenar el valor del NSString titulo.

@property (copy) NSString* mes
Genera una copia de los datos y apunta la variable allí, además hace al retain contar 1. Se suele usar con strings debido a que hacer una copia del original nos asegura que el string original no está siendo cambiando mientras lo usamos.

No hay comentarios:

Publicar un comentario

468x60