Как загрузить ресурсы из внешней структуры
У меня есть внешняя структура, и я пытаюсь использовать некоторые изображения, которые находятся в каталоге ресурсов фреймворка. Структура не копируется в приложении, а просто ссылается на нее. Как я могу использовать 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
}
}