2009-09-09 4 views
4

в моем приложении iphone, я связываюсь со статической библиотекой, содержащей объектные файлы c и изображения. Можно ли загрузить изображение из статической библиотеки? Я попыталсяКак загрузить изображение, хранящееся в статической библиотеке

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

но очевидно, что изображение не в главном расслоении, это в статической библиотеке, а класс NSBundle только кажется, предлагает доступ к главному расслоению и пучки с известными путями. Есть ли способ загрузить изображение из статической библиотеки на iPhone?

+0

Что? Как статическая библиотека содержит изображения? Это не имеет смысла для меня. Статическая библиотека должна быть просто кодом, который компоновщик будет включать в ваш исполняемый файл. – Chuck

ответ

1

Непонятно, что вы подразумеваете под «изображение [...] в статической библиотеке». Статические библиотеки - это простые файлы (с расширением .a) и содержат архивные объектные файлы. С другой стороны, связки - это иерархии каталогов (содержащие исполняемые файлы и другие ресурсы).

Если вы связываете статическую библиотеку, код из библиотеки будет включен непосредственно в ваш исполняемый файл. Файлы не копируются в пакет приложений, поэтому копировать изображение невозможно.

Если у вас есть файл изображения со своей статической библиотекой, вы можете просто скопировать его в свой пакет приложений, добавив фазу сборки файлов копий в свою цель в Xcode.

+0

Спасибо! Я новичок в xcode, и мне нужна фаза сборки файлов копий. Это исправляет это. – zaccox

12

Самый простой способ сохранить изображение в инлайн массив символов:

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

И позже, когда вам это нужно:

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

Вы должны преобразовать двоичные данные вашего изображения (после сохраненный как PNG или JPEG) в массив символов вручную (или написать сценарий для этого)

0

Вы используете Абсолютный Путь в фазе сборки файлов статической библиотеки и указываете ее t o клиентское приложение? Я попробовал что-то вроде этого, и изображения по-прежнему не могут быть доступны.

Смежные вопросы