我目前正在与Cocoa直接合作,首次构建屏幕保护程序。现在,我在尝试从.saver
捆绑包中加载资源时遇到了问题。我基本上有一个小的C ++包装类来使用.exr
加载freeImage
个文件。只要我使用absoulte路径,这就行,但这不是很有用,是吗?所以,基本上,我尝试了所有方法:将.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];
...这似乎是在Cocoa中查找资源的常用方法,但由于某些原因,在我的情况下它是空的。关于那个的任何想法? 我真的尝试了一些没有成功的事情,所以我很乐意接受一些意见!
答案 0 :(得分:2)
您应该使用NSBundle bundleWithIdentifier:
代替mainBundle
来获取对屏幕保护程序包的引用。
来自讨论部分:
此方法通常用于 用于定位的框架和插件 他们自己的捆绑在运行时。这个 方法可能会更有效 而不是尝试使用 bundleForClass:方法。