2012-01-23 13 views
8

Entonces, ¿es posible?Incluir biblioteca que no sea ARC en una aplicación ARC?

consigo este error varias veces:

ARC forbids Objective-C objects in structs or unions 

Por ejemplo aquí:

typedef struct { 
    BOOL _field1; 
    union { 
     struct { 
      id _field1; 
      id _field2; 
     } _field1; 
     GSEventRef _field2; 
    } _field2; 
} XXStruct_CKAdxD; 

Respuesta

29

es necesario agregar -fno-objc-arc a las opciones del compilador para cada archivo que no hace/no se puede utilizar ARCO. Dentro de Xcode lo haces desde la fase de compilación 'Compilar Fuentes' de tu objetivo. Haga doble clic en el archivo y agregue -fno-objc-arc al cuadro que aparece.

+1

Pero solo tengo los encabezados y no la fuente del framework – Tyilo

+0

OK Veo a qué se refiere en ese momento. Creo que en ese caso no podrá usar ARC en su código que interactúa con esta biblioteca, ya que la definición de estructura no puede tener un objeto (el 'id _field1',' id _field2'). Aunque haré algo de caza, ya que no he encontrado mucho antes. – mattjgalloway

+3

No importa. Acabo de envolver el código que necesitaba el marco en una clase que no sea ARC y establecí el indicador '-fno-objc-arc' en el compilador. Luego llamé a los métodos de clase desde dentro del código ARC. Parece que funciona bien! – Tyilo

Cuestiones relacionadas