Как загрузить ресурсы из внешней структуры

У меня есть внешняя структура, и я пытаюсь использовать некоторые изображения, которые находятся в каталоге ресурсов фреймворка. Структура не копируется в приложении, а просто ссылается на нее. Как я могу использовать UIImage соответственно из папки ресурсов xyz.framework?

Спасибо

Ответы

Ответ 1

Что вам нужно сделать, это загрузить пакет для фреймворка, а затем получить доступ к ресурсам с помощью объекта NSBundle.

Например, если существует структура, которая определяет класс "FrameworkClass", мы можем сделать:

NSBundle *frameworkBundle = [NSBundle bundleForClass:[FrameworkClass class]];
NSString *resourcePath = [frameworkBundle pathForResource:@"an_image" ofType:@"jpeg"];
UIImage *image = [UIImage imageWithContentsOfFile:resourcePath];

Это должно более или менее делать то, что вы хотите.

Ответ 2

Вы можете обратиться к ресурсам Framework следующим образом:

[[NSBundle mainBundle] pathForResource:@"FI.framework/Resources/FileName"
                                ofType:@"fileExtension"];

Обратите внимание: здесь FI является вашим именем фрейма.

Ref. Ссылка: http://db-in.com/blog/2011/07/universal-framework-iphone-ios-2-0/

Ответ 3

Swift 3:

let bundle = Bundle(for: SomeFrameworkClass.self as AnyClass)

if let path = bundle.path(forResource: "test", ofType: "png") {
    if let image = UIImage(contentsOfFile: path) {
        // do stuff
    }
}