Использование относительных путей для загрузки ресурсов в Какао / C ++ - PullRequest
2 голосов
/ 10 мая 2010

В настоящее время я впервые работаю напрямую с Cocoa для создания заставки. Теперь я столкнулся с проблемой при попытке загрузить ресурсы из пакета .saver. В основном у меня есть небольшой класс-оболочка C ++ для загрузки .exr файлов с использованием freeImage. Это работает, пока я использую абсолютные пути, но это не очень полезно, не так ли? В общем, я попробовал все: поместить файл .exr на уровень самого пакета .saver, в папку ресурсов пакета и т. Д.

Тогда я просто попытался загрузить .exr вот так, но безуспешно:

particleTex = [self loadExrTexture:@"ball.exr"];

Я также пытался заставить его перейти в папку .saver, например, так:

particleTex = [self loadExrTexture:@"../../../ball.exr"];

... чтобы загрузить .exr из этого места, но безуспешно.

Затем я наткнулся на это:

NSString * path = [[NSBundle mainBundle] pathForResource:@"ball" ofType:@"exr"];
const char * pChar = [path UTF8String];

... который, кажется, является обычным способом поиска ресурсов в Какао, но по какой-то причине он пуст в моем случае. Есть идеи по этому поводу? Я действительно пробовал все, что приходило мне в голову, но безуспешно, поэтому я был бы рад некоторому вкладу!

1 Ответ

2 голосов
/ 10 мая 2010

Вы должны использовать NSBundle bundleWithIdentifier: вместо mainBundle, чтобы получить ссылку на свой пакет заставок.

Из раздела :

Этот метод обычно используется рамки и плагины для поиска их собственный пакет во время выполнения. это метод может быть несколько более эффективным чем пытаться найти комплект, используя bundleForClass: метод.

...