问题:[NSBundle mainBundle] pathForResource 返回 null (0x0)
我看了很多关于这个主题的帖子,这是我发现的:
确保您尝试获取路径的文件在项目中。要检查,请在项目文件列表中查找文件,如果不存在,请将其拖放到。
检查您尝试加载的文件是否已复制到应用程序。为此,单击项目文件下的项目(带有项目名称的蓝色条->单击目标->单击构建阶段->单击以展开“复制捆绑资源”,并确保您的文件在其中.如果不是,点击加号,添加。
确保大小写完全匹配。 (又名 - 模拟器可以工作/应用程序不会有问题)确保大小写完全匹配,否则它不会返回任何内容。要解决此问题,只需在项目中重命名它,或在源代码中使用正确的大小写。
项目可能缺少媒体框架。要修复此问题,请单击您的项目菜单 -> 单击目标 -> 单击以展开“将二进制文件与库链接”。现在选择 MediaPlayer.framework 并构建代码。
如果一切都失败了,清理项目,然后重试。
所有这些都已检查/修复,但无法正常工作。我有这个工作正常,然后我改变了我在应用程序中显示的视频。由于我更改了文件,它停止工作了。
NSString *path = [[NSBundle mainBundle] pathForResource:@"multiplying"ofType:@"m4v"];
问:为什么为空?该文件大小写匹配/输入正确,大约 10 兆。 (文件太大了吗?)在模拟器中工作正常,我可以得到图像的路径,在这上面一行,没有错误。
最佳答案
你说它在模拟器中工作而不在设备上工作? 可能您应该尝试在第一次启动时将文件复制到其中一个应用程序沙箱文件夹并像这样访问它:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pathForTheFile= [documentsDirectory stringByAppendingPathComponent: @"multiplying.m4v"];
关于ios - NSBundle mainBundle pathForResource(可能不是同一个问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6931768/