Pregunta

en mi aplicación para iPhone, estoy enlazando con una biblioteca estática que contiene imágenes y archivos objetivos de c. ¿Es posible cargar una imagen desde una biblioteca estática? Lo he intentado

[UIImage imageNamed:[[NSBundle mainBundle] pathForResource:@"imageName" ofType:@"png"]];

pero obviamente la imagen no está en el paquete principal, está en la biblioteca estática y la clase NSBundle parece ofrecer solo acceso al paquete principal y paquetes con rutas conocidas. ¿Hay alguna manera de cargar una imagen desde una biblioteca estática en el iPhone?

¿Fue útil?

Solución

No está claro qué quiere decir con "la imagen está [...] en la biblioteca estática". Las bibliotecas estáticas son archivos simples (con la extensión .a) y contienen archivos de objetos archivados. Los paquetes, por otro lado, son jerarquías de directorios (que contienen ejecutables y otros recursos).

Si vincula una biblioteca estática, el código de la biblioteca se incluye directamente en su ejecutable. No se copian archivos al paquete de aplicaciones, por lo que no hay forma de copiar la imagen.

Si tiene el archivo de imagen con su biblioteca estática, simplemente puede copiarlo a su paquete de aplicaciones agregando una fase de compilación de archivos de copia a su destino en Xcode.

Otros consejos

La forma más sencilla es almacenar la imagen en una matriz de caracteres en línea:

const char imageData[] = { 0x00, 0x01, 0xFF, ... };

Y luego cuando lo necesites:

UIImage *image = [UIImage imageWithData:[NSData dataWithBytesNoCopy:imageData length:sizeof(imageData) freeWhenDone:NO]];

Tendrá que convertir los datos binarios de su imagen (después de guardarlos como PNG o JPEG) a la matriz de caracteres manualmente (o escribir un script para hacerlo)

¿Utiliza una Ruta absoluta en la fase de compilación de los archivos de copia de la biblioteca estática y la apunta a la aplicación cliente? Intenté algo como esto y todavía no se puede acceder a las imágenes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top