18

Estoy tratando de resolver esto. Sé cómo hacer que un proyecto ARC trabaje con archivos o bibliotecas estáticas que no usan ARC. Por ejemplo, usando los indicadores del compilador -fno-objc-arc.Uso de una biblioteca estática ARC en un proyecto NON-ARC

Pero, ¿qué ocurre si tengo un proyecto que no utiliza ARC y quiero incluir una biblioteca estática compilada con ARC? Cada vez que quiero construir el proyecto, me dice que no reconoce cosas como "fuerte, __unsafe_unretained, ...".

+0

Sólo por curiosidad, ¿por qué no acaba de activar el ARC para su proyecto y agregar la opción de compilador a todos sus archivos? ¿Hay alguna razón específica por la cual necesita tener ARC deshabilitado? –

+0

El proyecto se construyó hace un tiempo y también utiliza muchos otros marcos de terceros que no son de arco. Por lo tanto, sería un proceso tedioso revisar todos los archivos y configurar los indicadores del compilador. Esperaba una solución mejor/más limpia. Así que no tendría que completar los indicadores del compilador en más de 300 archivos fuente ... :) – Yannick

+0

¿Sabía que el migrador ARC le permite básicamente "seleccionar todos" los archivos para agregar la bandera? Al menos en Xcode 4.2, no hay necesidad de hacer todos los archivos manualmente. –

Respuesta

8

Debería funcionar bien, ¿está seguro de que está utilizando el último compilador de Apple con este proyecto que no es ARC y no el de GCC?

+1

Bueno, si hago eso, necesito eliminar todas las llamadas de retención/liberación de mi proyecto y, básicamente, comenzar a ARC todo. Y no quiero hacer eso porque tiene algún viejo código heredado y algunas estructuras en él. – Yannick

+1

No, no lo es - ARC es una característica de compilación adicional, no tiene que usarla si no lo desea. Usar el nuevo LLVM de Apple no significa que tenga que usar ARC; es su elección (incluso le da la opción de usar ARC o no cuando está haciendo un nuevo proyecto). Usarlo no significa que tenga que convertir su código anterior a ARC. La diferencia es que comprende todas esas palabras clave nuevas, etc. – shw

+1

Jep tiene razón. ¡Pensé que tenía que comenzar con ARC, pero él solo se estaba quejando por unos cuantos lanzamientos fallidos de __bridged y algunos otros errores! ¡Gracias! – Yannick

16

Para agregar a la respuesta de shw. Agregue -fobjc-arc a indicadores del compilador en fases de compilación a archivos ARC para que se compilen correctamente para proyectos que no sean ARC.

Más información here

+0

Simplemente genial ... –

Cuestiones relacionadas