Después de leer tantos artículos, serán puestos y aplicaciones de demostración realizados para comprobar los atributos de propiedad variable, decidí poner toda la información atributos juntos
- atómica // predeterminado
- no atómica
- fuertes = conservan por defecto //
- débil = unsafe_unretained
- retener
- asignar por defecto //
- unsafe_unretained
- copia
- sólo lectura
- lectura-escritura por defecto //
es abajo es el enlace detallado artículo donde se puede encontrar mencionado anteriormente, todos los atributos que le ayudarán desafiante tú. ¡Muchas gracias a todas las personas que dan mejores respuestas aquí!
Variable property attributes or Modifiers in iOS
- retener = fuerte
- se retiene, valor antiguo es liberado y se le asigna
- conservan especifica el nuevo valor debería enviarse -retain en la asignación y el valor anterior enviado -release
- retener es lo mismo que fuerte.
- apple dice que si escribes retener, se convertirá automáticamente/funcionará solo como fuerte.
- métodos como "alloc" incluyen un implícito "retienen"
Ejemplo:
@property (nonatomic, retain) NSString *name;
@synthesize name;
- asignar
- Asignar es el valor predeterminado y simplemente realiza una asignación variable
- asignar es un atributo de propiedad que le dice al compilador cómo sintetizar la implementación del setter de la propiedad
- Usaría la asignación para propiedades primitivas C y débil para referencias débiles a objetos Objective-C.
Ejemplo:
@property (nonatomic, assign) NSString *address;
@synthesize address;
sólo lectura
- declarar su propiedad como de sólo lectura le dice compilador para no generar método setter automáticamente.
- Indica que la propiedad es de solo lectura.
- Si especifica de solo lectura, solo se requiere un método getter en el bloque @implementation. Si usa la directiva @synthesize en el bloque @implementation, solo se sintetiza el método getter. Además, si intentas asignar un valor usando la sintaxis de puntos, , obtienes un error de compilación.
Ejemplo:
@property (nonatomic, readonly) NSString *name;
@synthesize name;
- lectura y escritura
- setter y getter generado.
- Indica que la propiedad debe tratarse como de lectura/escritura.
- Este atributo es el predeterminado.
- Se requieren un método getter y setter en el bloque @implementation. Si usa la directiva @synthesize en el bloque de implementación , los métodos getter y setter se sintetizan.
Ejemplo:
@property (nonatomic, readwrite) NSString *name;
@synthesize name;
Ver también: [Atómica vs propiedades no atómicas] (http://stackoverflow.com/questions/588866/atomic-vs-nonatomic-properties) – PengOne
Ver también : objetivo c 101 (conservar vs asignar) @ http://stackoverflow.com/questions/1380338/objective-c-101-retain-vs-assign-nsstring –