Estoy usando la versión beta de Xcode para desarrolladores y estoy notando algunas diferencias sutiles. Entre ellos se encuentra un nuevo atributo para propiedades declaradas.
@property(strong)IBOutlet NSArrayController *arrayControl;
Mi pregunta es: ¿qué significa el atributo fuerte? ¿Reemplaza a uno más antiguo o es algo completamente nuevo? He buscado en google y en la documentación del desarrollador y no he podido encontrar nada. Hasta que no sepa qué es, no me atrevo a usarlo.
Gracias por adelantado
Respuestas:
Es un reemplazo del
retain
atributo, como parte del conteo de referencias automatizado (ARC) de Objective-C . En código que no es ARC es solo un sinónimo deretain
.fuente
Una referencia fuerte es una referencia a un objeto que evita que se desasigne. En otras palabras, crea una relación de propietario. Mientras que anteriormente harías esto:
**// Non-ARC Compliant Declaration @property(retain) NSObject *obj;**
Bajo ARC hacemos lo siguiente para asegurarnos de que una instancia de clase tome un interés de propiedad en un objeto referenciado (es decir, para que no se pueda desasignar hasta que el propietario lo sea).
**// ARC Compliant Declaration @property(strong) NSObject *obj;**
fuente
Como sabemos, no podemos liberar ningún objeto en un proyecto basado en ARC en iOS 5. Entonces, cuando queremos retener cualquier objeto para su uso posterior en una etapa posterior y no queremos que ARC elimine el objeto de la memoria, entonces configuramos la propiedad del objeto como "Fuerte".
fuente