Descargué el SDK de iOS 5 y descubrí que ARC es una gran característica del nuevo compilador de Apple. Por el momento, muchos marcos de terceros no son compatibles con ARC. ¿Podría usar ARC para mi nuevo código y mantener el código de retención / liberación actual sin cambios? El convertidor ARC no funciona aquí, porque algunos marcos, como JSONKit, no se pueden convertir a ARC utilizando el convertidor.
Editar:
La respuesta es agregar -fno-objc-arc
a los indicadores del compilador los archivos que no desea ARC. En Xcode 4, puede hacer esto bajo su objetivo -> Fases de construcción -> Compilar fuentes.
objective-c
ios5
automatic-ref-counting
no melive
fuente
fuente
.m
archivo. No es el.h
archivo.Respuestas:
Los documentos públicos de ARC , aunque no son claros en este punto, parecen sugerir que, siempre y cuando cada clase sea ARC o se administre manualmente, las clases se pueden integrar en un solo programa.
No puede mezclar ARC y no ARC en una sola clase; el documento dice que el envío
retain
,release
,autorelease
, oretainCount
mensajes de cualquier medio (incluyendo temporizadores y lleva a cabo con retraso, que el uso@selector
) está prohibido en arco del código. Por lo tanto, no puede hacer ARC en una clase ARC (porque los mensajes necesarios están prohibidos) y no puede hacer ARC en una clase que no sea ARC (porque ARC agrega elementos de sintaxis que no son válidos sin ARC).El mismo documento es un poco más claro sobre si puede integrar bibliotecas / frameworks que no sean ARC en un programa ARC: Sí. No menciona si puede usar bibliotecas / marcos ARC en un programa donde todo su código no es ARC, pero dado todo lo anterior, la implicación parece ser sí.
fuente
#import
desde archivos de módulo. La configuración de los indicadores del compilador es para cada archivo de módulo (más precisamente, cada archivo en la fase de compilación "Compilar orígenes"). El compilador no tiene forma de saber si debe usar ARC o no para cualquier otro archivo, excepto heredando la opción que se le dio para el archivo de módulo con el que comenzó.No es muy intuitivo cómo deshabilitar ARC en archivos MÚLTIPLES , por un tiempo lo hice uno por uno hasta que descubrí cómo hacerlo.
fuente
Si desea deshabilitar el recuento automático de referencias para algunos archivos, entonces es muy simple de hacer, simplemente siga los pasos. Agregue indicadores de compilación en Objetivos -> Fases de compilación -> Compilar orígenes.
La bandera utilizada es -fno-objc-arc y presiona enter después de escribirla. Debe hacer doble clic en la columna derecha de la fila debajo de Banderas del compilador. Espero que ayude Gracias :)
fuente
-fobjc-arc
.Es posible deshabilitar ARC para archivos individuales agregando el indicador del compilador -fno-objc-arc para esos archivos.
¿Cómo puedo desactivar ARC para un solo archivo en un proyecto?
fuente