Copia del diccionario de variables de IOS
Assign se utiliza principalmente para modificar tipos de datos básicos, como int, float, NSInteger y CGFloat. No es necesario administrar la memoria almacenada en la pila y los objetos generalmente no están decorados. De lo contrario, se liberará la dirección de memoria del objeto, pero no se liberará el puntero, lo que provocará punteros salvajes.
2. Débil
Débil solo se puede utilizar para modificar objetos, pero no guarda el objeto y el recuento de referencias no será +1. Esta propiedad opera en tiempo de ejecución. Una vez liberada la memoria puntiaguda (el recuento de referencias es 0), el puntero automáticamente = nulo, que se utiliza principalmente para evitar referencias circulares. Principio débil
3. Fuerte, retenido
Fuerte se utiliza para modificar el objeto y conservarlo, el recuento de referencias será +1. En circunstancias normales, el objeto señalado no se destruirá y el recuento de referencias se puede reducir configurándolo manualmente en un puntero nulo. Si el recuento de referencias llega a 0, el objeto será destruido. Pasar bajo un arco fuerte equivale a permanecer bajo MRC (retener el arco tiene el mismo efecto que un arco fuerte).
4. Copiar
Similar a fuerte, si el objeto no admite el protocolo NSCopying para ejecutar el método copyWithZone, el efecto es básicamente el mismo que fuerte, el recuento de referencias del objeto aumentará. será +1 y no copiará ningún objeto nuevo. Por el contrario, copiar se refiere a un nuevo objeto copiado con un recuento de referencias de 1. Se utiliza principalmente para modificar objetos inmutables de tipos mutables, como NSString, NSDictionary y NSArray. Descripción detallada de las copias profundas y superficiales
5. Unsafe_unretained
Unsafe_retain es similar a débil, pero si se libera la memoria, el puntero aún mantiene la dirección anterior y se convierte en un Acceso. a los punteros salvajes fallará, por lo que no es seguro.
Resumen
1, después de un recuento débil de referencias de estudiantes = 1
2 Después de un recuento sólido de referencias de estudiantes +1 = 2.
3. El número de estudiantes de referencia después de la reserva + 1 = 3.
4. Después de copiar, el recuento de referencias del estudiante +1 = 4 // No implemente el método copyWithZone; de lo contrario, el recuento de referencias permanecerá sin cambios en 3, pero el objeto señalado por cyStu no es el estudiante.