Frage

in meinem iphone app, ich bin die Verknüpfung mit einer statischen Bibliothek mit Objective-C-Dateien und Bildern. Ist es möglich, ein Bild von einer statischen Bibliothek zu laden? Ich habe versucht,

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

aber offensichtlich das Bild ist nicht im Hauptbündel, dann ist es in der statischen Bibliothek und die NSBundle Klasse scheint nur Zugriff auf das Hauptbündel zu bieten und mit bekannten Pfaden zu bündeln. Gibt es eine Möglichkeit, ein Bild von einer statischen Bibliothek auf dem iPhone zu laden?

War es hilfreich?

Lösung

Es ist nicht klar, was Sie unter „das Bild ist [...] in der statischen Bibliothek“. Statische Bibliotheken sind einfache Dateien (mit der Erweiterung .a) und enthalten Objektdateien archiviert. Bundles auf der anderen Seite sind Verzeichnishierarchien (mit ausführbaren Dateien und andere Ressourcen).

Wenn Sie eine statische Bibliothek verknüpfen, wird der Code aus der Bibliothek, die direkt in der ausführbaren Datei. Keine Dateien in das Anwendungspaket kopiert werden, so gibt es keine Möglichkeit, das Bild zu kopieren.

Wenn Sie die Bilddatei mit Ihrer statischen Bibliothek haben, können Sie einfach kopieren Sie sie in Ihrem Anwendungspaket durch Hinzufügen einer Kopie Dateien Phase zu Ihrem Ziel in Xcode zu bauen.

Andere Tipps

Der einfachste Weg ist es, das Bild in einem Inline-Zeichen-Array zu speichern:

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

Und später, wenn Sie es brauchen:

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

Sie haben Ihr Bild von binären Daten konvertieren, um den Zeichen-Array manuell (oder ein Skript zu schreiben, dies zu tun) (nach entweder als PNG oder JPEG gespeichert)

Haben Sie einen absoluten Pfad in der statischen Bibliothek verwenden Kopieren von Dateien Phase bauen und an die Client-Anwendung zeigen? Ich habe versucht, so etwas wie diese und die Bilder immer noch nicht zugegriffen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top