在iOS设备上找不到文件,但在Simulator中可以使用

时间:2012-12-21 08:38:22

标签: iphone objective-c image file simulator

当我在模拟器上测试我的应用程序时,一切正常。但是当我在iOS设备上测试时,我收到了这个错误:

*** Terminating app due to uncaught exception 'FileNotFound', reason: 'file '/Users/name/Documents/appname/GFX/MainMenu.png' not found'

我检查了Build Phases Copy Bundle Resources并添加了所有内容。当我在Xcode中突出显示该文件时,会在实用程序中检查目标成员身份。

我也试过省略加载文件的代码,但是我在不同的文件上得到了同样的错误。似乎只有应用程序图标和启动图像才能正确加载。

请注意我使用的是 Sparrow Framework (如果这有任何区别)。纹理加载如下:

SPTexture *gameMenuTexture = [SPTexture textureWithContentsOfFile:(@"/Users/name/Documents/appname/GFX/MainMenu.png")];

SPImage *gameMenuImage = [SPImage imageWithTexture:(gameMenuTexture)];
[self addChild:gameMenuImage];

非常感谢帮助。我在各个论坛上寻找答案。谢谢!

3 个答案:

答案 0 :(得分:2)

问题在于硬编码路径:

@"/Users/name/Documents/appname/GFX/MainMenu.png"

在设备中,指定路径中不会有任何文件夹。

如果是捆绑使用:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MainMenu" ofType:@"png"];
SPTexture *gameMenuTexture = [SPTexture textureWithContentsOfFile:filePath];

答案 1 :(得分:0)

测试类似SPTexture *gameMenuTexture = [SPTexture textureWithContentsOfFile:(@"MainMenu.png")];

的内容

答案 2 :(得分:0)

您的模拟器只是Mac上运行的应用程序。它可以轻松访问我们Mac上的文件,例如/Users/name/Documents/appname/GFX/MainMenu.png。

您的iOS设备无法直接访问Mac上的文件。最新发布应用时,第三方用户几乎无法访问Mac上的任何内容。

考虑一下。它确实有所作为。