Domanda

nella mia app per iPhone, mi collego a una libreria statica contenente file e immagini dell'obiettivo c. È possibile caricare un'immagine da una libreria statica? Ho provato

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

ma ovviamente l'immagine non è nel bundle principale, è nella libreria statica e la classe NSBundle sembra offrire solo l'accesso al bundle principale e ai bundle con percorsi noti. C'è un modo per caricare un'immagine da una libreria statica sull'iPhone?

È stato utile?

Soluzione

Non è chiaro cosa intendi per "immagine [...] nella libreria statica". Le librerie statiche sono file semplici (con estensione .a) e contengono file di oggetti archiviati. I pacchetti invece sono gerarchie di directory (contenenti eseguibili e altre risorse).

Se colleghi una libreria statica, il codice dalla libreria viene incluso direttamente nel tuo eseguibile. Nessun file viene copiato nel pacchetto dell'applicazione, quindi non è possibile copiare l'immagine.

Se hai il file di immagine con la tua libreria statica, puoi semplicemente copiarlo nel pacchetto dell'applicazione aggiungendo una fase di creazione dei file di copia alla tua destinazione in Xcode.

Altri suggerimenti

Il modo più semplice è archiviare l'immagine in un array di caratteri in linea:

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

E più tardi quando ne hai bisogno:

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

Dovrai convertire i dati binari della tua immagine (dopo averli salvati come PNG o JPEG) nell'array di caratteri manualmente (o scrivere uno script per farlo)

Utilizzi un percorso assoluto nella fase di creazione dei file di copia della libreria statica e lo punti all'applicazione client? Ho provato qualcosa di simile e non è ancora possibile accedere alle immagini.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top