2012-04-17 12 views
11

Después de convertir un proyecto Xcode a ARC (Conteo Automático de Referencia), necesito desactivar el ARC para algunos de mis archivos fuente (principalmente código de terceros)Agregando lote marcador "-fno-objc-arc" a (múltiples) archivos fuente

Sé que necesito establecer el indicador "-fno-objc-arc" para cada uno de estos archivos, pero Xcode no me da una opción para edición por lotes - Necesito agregar este indicador a cada archivo manualmente, que puede ser tedioso si necesita configurarlo para varios archivos.

¿Alguien tiene un enfoque inteligente para esto?

Respuesta

23

Seleccione los que desee agregar a la bandera (usando Shift y/o Comando) y pulse Enter para mostrar el editor bandera. Presione Hecho para aplicar la (s) bandera (s) ingresada (s) al archivo (s) seleccionado (s).

Tutorial

He compuesto una blog post para servir como un tutorial para este proceso.

+0

Nice !! Nunca supe que podrías hacer esto +1 – borrrden

+0

¡Rápido e increíble! Intenté seleccionar varias veces y hacer doble clic, ¡nunca pensé en presionar Enter! –

+1

Sí, no es muy intuitivo. –

1

Necesito configurar archivos que no se supone que admitan ARC (principalmente código de terceros).

Además de administrar los indicadores, puede simplemente crear una biblioteca estática para estas fuentes, y luego vincular.

+0

Encuentro que la creación de bibliotecas es un proceso confuso ya menudo inútil.Con todo el tiempo que ha pasado revisando encabezados y ajustando la configuración de compilación, podría simplemente haber establecido los indicadores del compilador y haber terminado con ellos. – CodaFi

+0

@CodaFi después de haber escrito y configurado muchas bibliotecas, mi opinión es todo lo contrario :) – justin

+0

Creo que todo depende de la cantidad de aplicaciones que tenga que mantener. – nycynik

2

La opción más simple es simplemente usar la herramienta de conversión ARC en Editar> Refactorizar.

No está muy claro, pero básicamente solo verifica los archivos que quieras usar ARC y desmarcas cualquiera que no sea así. Esto va a hacer el siguiente:

1) Los archivos que son sin control tendrá la bandera -fno-objc-arco aplicados

2) Archivos que se comprueban se convertirá en arco

3) Los archivos que se verifican que ya se han convertido a ARC no se tocarán

Lea de nuevo con atención. Lo que a veces confunde a las personas es que suponen que los archivos que ya están convertidos no deben revisarse cuando se ejecuta la herramienta de nuevo, pero esto aplicará incorrectamente el -fno-objc-arc a esos archivos (lo que provocará filtraciones).

Debería pensar en la herramienta de conversión ARC como una herramienta "seleccionar archivos compatibles con ARC por lotes y convertir archivos que ya no son ARC" en lugar de una herramienta de conversión directa.

Puede ejecutar la herramienta de conversión tantas veces como desee; los efectos no son acumulativos (aunque la conversión de archivos a ARC no es reversible).

Cuestiones relacionadas