Какао - загрузка ресурса из неосновных комплектов - PullRequest
2 голосов
/ 11 января 2012

Мое приложение загружает несколько пользовательских пакетов и хочет использовать ресурсы в этих пакетах.

Кажется, что невозможно получить ресурсы из экземпляра основного пакета, например, [NSBundle mainBundle] pathForResource: ofType:].

Поэтому я заменяю его на + [NSBundle pathForResource: ofType: inDirectory:], и он работает хорошо.Но довольно неудобно, что код загрузки ресурсов должен знать путь к пакету для «inDirectory:».Это не будет работать, если пакеты перемещаются по другим путям.

Существуют ли другие способы для решения этой проблемы?Спасибо!

1 Ответ

1 голос
/ 11 января 2012

Я не совсем уверен, что вы пытаетесь выполнить, но если вы хотите загрузить ресурс пакета без использования прямого пути к пакету, вы можете использовать либо [NSBundle bundleForClass:], либо [NSBundle bundleWithIdentifier:].Если у вас есть ссылка на экземпляр нужного вам пакета, вы можете получить доступ к его содержимому следующим образом:

NSBundle myBundle = [NSBundle bundleWithIdentifier:@"com.my.identifier"];
[myBundle pathForResource:@"myResource" ofType:@"type"];

Если вы хотите, чтобы он оставался точным даже после перемещения пакета, это может бытьхитрый вопрос.Как говорится в документации, «объект NSBundle представляет местоположение в файловой системе ...».Если это местоположение перемещается, экземпляр пакета будет по-прежнему искать в существующем местоположении.Я думаю, что вам нужно будет найти другой механизм, чтобы определить, перемещен ли пакет, и воссоздать ваш экземпляр NSBundle из нового местоположения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...