19

Me preguntaba cuál es la forma correcta de escribir propiedades sintetizadas para tipos de datos primitivos (como bool) cuando ARC está habilitado.Propiedades sintetizadas para tipos de datos primitivos que usan ARC: ¿débiles o asignados?

Solía ​​usar esto antes ARC:

@property(assign) bool isOn; 

Pero es mi entendimiento (tal vez mal) que no se debe utilizar cuando assign ARC está activado. He intentado reemplazar esto con weak pero me sale el error -

propiedad del atributo "débil" debe ser del tipo de objeto.

¿Debo continuar utilizando assign?

Respuesta

29

Assign está bien. ARC significa "Cuenta de referencia automática", y los tipos de datos primitivos no tienen recuentos de referencia.

Weak falló porque no hay ningún objeto, ni referencias para que ARC pueda administrar.

+0

Asignar no es un sinónimo perfecto para débil entonces. pero de nuevo, débil es el predeterminado ¿no? –

+0

Por defecto ARC pone fuerte – deimus

+0

"Asignar está bien" Sigo leyendo eso. Tiene una agradable rima, pero parece eludir el punto: ¿Es necesario "asignar"? ¿Qué pasa si no usas "asignar"? – Rhubarb

0

Cuando ARC activado, puede escribir las propiedades sintetizado de datos primitivos como (por ejemplo: BOOL) .. @property (unsafe_unretained) bool Ison;

Cuestiones relacionadas