Cuando creo los objetos modelo para mi entidad en CoreData en modo ARC, genera retener en lugar de fuerte. Entonces, ¿retiene trabajo y compila en modo ARC también? Pensé en el modo ARC que no podemos usar liberación, liberación automática y retención de palabras clave.Objetos de modelo CoreData en ARC utiliza retener
Respuesta
¿Quiere decir que genera una declaración @property
como esta?
@property (nonatomic, retain) MyObject *object;
El atributo de propiedad retain
significa strong
bajo ARC.
Eso es genial, pero realmente no responde la pregunta, me gusta que este tipo haya creado un proyecto usando ARC, y al agregar Datos básicos en la mezcla, los objetos NSManagedObjects se generan con propiedades que usan retener, no fuerte. Si bien esto no debería ser legal en un proyecto ARC a menos que se especifique lo contrario como una sección que no es ARC del proyecto, esta es una ocurrencia extraña. Debería esperarse que use strong no retener, o al menos el compilador debería quejarse de que no coincide con las reglas de ARC ... Cualquier otra idea – Daniel
ARC no prohíbe el uso de la palabra clave 'retain'. Prohibe el uso del selector 'retener'. Las palabras clave y los selectores son totalmente diferentes. Ver §7.1.1 del documento que he vinculado. –
Gracias por la información adicional – Daniel
Por favor, echa un vistazo a esta respuesta: https://stackoverflow.com/a/10036821/662605
El quid de la cuestión es que si @synthesize
sus propiedades, a continuación, el código generado bajo el capó se basará en el tipo retain
(retain
, assign
, copy
).
subclases de objetos gestionados generado usa @dynamic
no @synthesize
, todo esto sucede por arte de magia para usted, así que en realidad, aunque es confuso, la palabra clave retain
no se utiliza lo que parece, por lo tanto, la ARC no se queja .. Estoy bastante seguro de que es eso.
Aunque traté de cambiar la puesta en práctica de utilizar @synthesize
y aún así no tener errores, pero creo que podría ser en algo con esa respuesta en el enlace
Cualesquiera otros puntos de vista sería agradable.
- 1. Retener ciclo en ARC
- 2. ¿Cuál es el equivalente a '[[retener algo] autorelease]' en ARC?
- 3. Ver dónde está insertando ARC retener y liberar
- 4. ARC y molde en puente
- 5. Importación de un modelo CoreData antiguo en un nuevo proyecto
- 6. Convirtiendo objetos de auto-liberación a ARC
- 7. ¿ARC funciona con objetos de gráficos básicos?
- 8. que vuelven objetos autoreleased utilizando ARC
- 9. Guardar objeto en CoreData
- 10. Cómo almacenar objetos personalizados con struct en Coredata
- 11. Uso de retener en initWithCoder?
- 12. ARC o no a ARC iphone iOS5
- 13. Cómo obtener objetos después de combinar el contexto CoreData
- 14. Cómo recuperar objetos completos (no fallas) de CoreData?
- 15. Diseño de modelo de CoreData: ¿El uso excesivo de NSFetchRequest es un síntoma de un modelo mal diseñado?
- 16. Cómo usar @sum con CoreData
- 17. Migración ligera de CoreData: ¿cuáles son exactamente los "cambios simples en su modelo" que CoreData puede migrar automáticamente?
- 18. Mejores prácticas de CoreData
- 19. cakephp utiliza otro modelo dentro del modelo actual
- 20. iOS: ¿Cómo eliminar objetos de la memoria con ARC habilitado?
- 21. opciones del compilador para mezclar el ARC y el Código no se hace caso omiso ARC
- 22. ¿por qué este modelo no requiere puente bajo ARC?
- 23. ¿Cómo hacer UnitTests con CoreData?
- 24. Nuevos atributos de propiedades ARC
- 25. Patrón DAO y objetos modelo
- 26. Entidad Singleton en CoreData
- 27. Delegados: ¿retener o asignar liberación?
- 28. ¿Al establecer objetos a cero cuando se usa ARC?
- 29. Copia de archivos iPhone CoreData de un proyecto a otro
- 30. ¿Utiliza SQL para consultar objetos JavaScript?
hmm esto es sorprendente, ¿no hay respuesta? – theiOSguy