Question

dans mon application iphone, je suis en liaison avec une bibliothèque statique contenant des fichiers et des images c objectifs. Est-il possible de charger une image à partir d'une bibliothèque statique? J'ai essayé

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

mais évidemment, l'image ne se trouve pas dans le bundle principal, mais dans la bibliothèque statique et la classe NSBundle semble uniquement offrir un accès au bundle principal et aux bundles avec des chemins connus. Est-il possible de charger une image à partir d'une bibliothèque statique sur l'iPhone?

Était-ce utile?

La solution

On ne comprend pas bien ce que vous entendez par "l'image est [...] dans la bibliothèque statique". Les bibliothèques statiques sont des fichiers ordinaires (avec l'extension .a) et contiennent des fichiers d'objet archivés. Les lots, par contre, sont des hiérarchies de répertoires (contenant des exécutables et d’autres ressources).

Si vous liez une bibliothèque statique, le code de la bibliothèque est directement inclus dans votre exécutable. Aucun fichier n'est copié dans l'ensemble d'applications, il n'y a donc aucun moyen de copier l'image.

Si vous avez le fichier image avec votre bibliothèque statique, vous pouvez simplement le copier sur votre lot d'applications en ajoutant une phase de création de fichiers de copie à votre cible dans Xcode.

Autres conseils

Le moyen le plus simple consiste à stocker l'image dans un tableau de caractères intégré:

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

Et plus tard, quand vous en aurez besoin:

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

Vous devrez convertir les données binaires de votre image (après les avoir enregistrées au format PNG ou JPEG) manuellement dans le tableau de caractères (ou écrire un script pour le faire)

Utilisez-vous un chemin absolu lors de la phase de création des fichiers de copie de bibliothèque statique et pointez-le sur l'application cliente? J'ai essayé quelque chose comme ça et les images ne sont toujours pas accessibles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top