【问题标题】:pathForResource yields erratic nullpathForResource 产生不稳定的空值
【发布时间】:2011-07-03 01:30:45
【问题描述】:

我在将我的 shader-glsl 文件从一个 xcode 项目添加到另一个项目时遇到了一些问题。此刻我完全感到困惑,因为我无法为我简单地拖入 xcode 的文件创建路径。 我已经检查了拼写,“在查找器中显示”多次,但仍然有问题......

这是我添加到 xCode 的文件示例,我什至没有将它们放入子目录以排除这些文件的任何问题:

现在我的代码:

    NSLog(@"Filepath of Tools-image: %@",[[NSBundle mainBundle] pathForResource:@"tools" ofType:@"png"]);
    NSLog(@"Filepath of mo-tut is: %@",[[NSBundle mainBundle] pathForResource:@"mo" ofType:@"tut"]);
    NSLog(@"Filepath of FragShader-fsh is: %@",[[NSBundle mainBundle] pathForResource:@"fragshader" ofType:@"fsh"]);

在运行时我得到这个输出:

2011-07-02 02:03:33.516 windowconfig[16192:707] Filepath of Tools-image: /var/mobile/Applications/BC82AD2C-B8B9-4751-80A2-31EC5ACEC9C2/windowconfig.app/tools.png
2011-07-02 02:03:33.526 windowconfig[16192:707] Filepath of mo-tut is: /var/mobile/Applications/BC82AD2C-B8B9-4751-80A2-31EC5ACEC9C2/windowconfig.app/mo.tut
2011-07-02 02:03:33.531 windowconfig[16192:707] Filepath of FragShader-fsh is: (null)

请问有人对此有什么想法吗?

编辑:“tools.png”目前是我在标签栏上使用的一个图标,它位于资源的子文件夹中,只是一个比较测试。如果你们想知道为什么我没有在屏幕截图中打开另一个文件的路径。

EDIT2:在过去的两个小时里,我疯狂地使用了“清洁”。 “fragshader.fsh”似乎没有被复制到“windowconfig.app”包中,即使我以与添加“mo.tut”相同的方式将它添加到项目中,并且这个位于包中。如何确保它被复制?

EDIT3:在 Inspector 中检查了两个文件的 Target Membership,仍然没有复制着色器。

解决方案:

在 Target-Build Phases 下,该文件不在“将文件复制到捆绑包”列表中。 我手动添加了,但还是很奇怪,在我将文件添加到项目后它没有自动添加。

【问题讨论】:

    标签: iphone objective-c cocoa-touch


    【解决方案1】:

    您是否确定 fragshader.fsh 在复制文件步骤中? (即确保它确实存在于生成的应用程序包中)。

    【讨论】:

    • 如果我在“~/Library/Xcode/DerivedData/....”下打开包,那么 fragshader 不包含在“windowconfig.app”中。 “mo.tut”是,即使我以完全相同的方式将它们添加到 Xcode。我如何确保它被复制,它没有进入复制文件步骤的原因是什么?
    • developer.apple.com/library/mac/#recipes/… 或类似的可能会有所帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多