2011-12-26 9 views
6

Mi proyecto utiliza el ARC (contador de referencia automático), así que cuando intento importar la biblioteca ASIHTTPRequest que tiene 4 clases que utilizaron en su implementación la declaración de liberación automática, aquí es un ejemplo:Archivos no es compatible con la función ARC, cómo hacer frente a

[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]]; 

El error que me dieron:

ARC forbids explicit message send of autorelease 

¿Qué debo hacer para solucionar este problema.

Respuesta

14

Tengo la solución, necesitaba agregar los indicadores adecuados a los indicadores del compilador para cada archivo que no admite el ARC. Para mí, uso Xcode 4.2, por lo tanto, bajo target -> Build Phases -> Compile Sources, haga doble clic en el archivo que desea deshabilitar la función ARC y ponga -fno-objc-arc haciendo clic en Done. Y listo;)

Tenga en cuenta que si el archivo no existe en la lista, puede simplemente agregarlo haciendo clic en el botón + y luego realizar el mismo trabajo anterior.

9

Desactivar ARC para que una clase

Al migrar un proyecto para utilizar ARC, la bandera compilador -fobjc de arco se establece como valor predeterminado para todos los archivos fuente de Objective-C. Puede deshabilitar ARC para una clase específica utilizando el indicador de compilador -fno-objc-arc para esa clase.

En Xcode, en la pestaña Fases de creación de destino, abra el grupo Compilar fuentes para mostrar la lista de archivos de origen. Haga doble clic en el archivo para el cual desea establecer la bandera, ingrese -fno-objc-arc en el panel emergente, luego haga clic en Listo.

Cuestiones relacionadas