2009-07-18 13 views
8

Tengo categorías en mi biblioteca estática. Cualquier desarrollador de aplicaciones debe establecer el indicador -ObjC en "Otros indicadores de enlazador" para usar mi biblioteca estática correctamente. Funciona bien para dispositivos iPhone/iPhone Simulator 2.xy iPhone Simulator 3.0. Pero se bloquea para el dispositivo iPhone 3.0. Como está escrito in this article es una nueva falla del enlazador. Sugieren usar un indicador de enlazador más: -todo_carga. Pero cuando agrego este indicador, la compilación falla también, porque hay símbolos duplicados.Categorías en la biblioteca estática para dispositivos iPhone 3.0

¿Cómo usar categorías en bibliotecas estáticas para dispositivos iPhone 3.0? ¿Alguna sugerencia?

+0

Tengo el mismo problema, ¿lo resolvió? – thierryb

+0

En el último enlazador parece que esto se ha solucionado y -all_load ya no es necesario. – drekka

Respuesta

10

We ran into the same problem (menos de 3.0, -ObjC ya no tiene enlaces en las categorías) dentro de Core Plot framework. Todo lo que puedo decir es que, para nosotros, pudimos agregar la opción -all_load a las otras banderas de enlazador dentro de la aplicación de destino y eso eliminó los errores de tiempo de ejecución. No vimos ninguna advertencia de símbolos duplicados.

He presentado un informe de error para el comportamiento del enlazador, como estoy seguro de que otros tienen.

0

Cuando agrega -toda_carga a sus otros indicadores de vinculador, asegúrese de que todos los marcos que usa la biblioteca estén vinculados con su aplicación de destino. De lo contrario, no se compilará. En mi caso, tenía una Categoría para MKMapView y no vinculaba MapKit Framework con mi aplicación de destino, por lo que la clase a la que pertenece la categoría no se encontró en el momento de la compilación.

0

Me encontré con el mismo problema de "símbolos duplicados". Sin la bandera -all_load, también debíamos incluir todas las bibliotecas vinculadas a nuestra biblioteca en la línea de enlace de la aplicación. Eliminar estos de la línea de enlace de la aplicación resolvió el problema.

1

Es un error causado por tratar de arreglar otro error con un truco. La corrección de "todas las cargas" para el error de categoría es un truco total.

Ver here para más.

Cuestiones relacionadas