¿Cuál es el atributo de propiedad fuerte?

80

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

Chance Hudson
fuente
1
Realmente no se supone que hablemos sobre cosas beta de NDA aquí ...
Kendall Helmstetter Gelner
3
Bueno, no es como si estuviera revelando secretos corporativos, pero sí, probablemente debería haber puesto esto en los foros de desarrollo de Apple
Chance Hudson
Sigo viendo estos comentarios de "beta NDA" sobre cosas del objetivo c. Me parece gracioso que Apple sienta la necesidad de proteger sus secretos objetivos c (¡todos se mueren por copiar el objetivo c!), Y aún más divertido que los desarrolladores sientan la necesidad de molestar a la gente al respecto.
Jehan

Respuestas:

10

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;**
Jack Farnandish
fuente
4

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".

Sanjeev Sharma
fuente