【问题标题】:NSBundle returning NULLNSBundle 返回 NULL
【发布时间】:2012-03-08 08:15:30
【问题描述】:

我使用 pathForResource 已经有一段时间了,但它突然放弃了我。 我在资源中添加了一个名为 untitled.objuntitled.mtl 的附加文件。

以下两行代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"untitled" ofType:@"obj"];
NSLog(@"thePath = %@", path);

untitled.obj 之外,所有其他 *.obj 文件都可以正常工作。

当我使用该文件时,NSLog 的输出什么都没有,所以我假设它由于某种原因无法找到它。

资源也位于 temp.模拟库:

【问题讨论】:

  • 您是如何添加新文件的,它是否包含在您的目标中?选择项目中的文件并检查右侧的检查器 - 您的目标是否已检查?
  • @jrturton,这两个文件都在目标的目标成员中。我将该文件与所有其他 *.obj 文件一样放在目录中,并将它们拖到文件夹中,因为其他文件位于其中。
  • 新更新。我找不到的资源也位于模拟目录中,所以现在更没有意义了。

标签: objective-c xcode


【解决方案1】:

从您的设备中删除应用程序并重置模拟器中的内容和设置。同时删除项目的派生数据。完成此操作后,再次测试它应该可以工作。

【讨论】:

  • 我删除了应用,重置了内容和设置。删除了 App 模拟文件。并再次尝试。结果还是一样。 “派生数据”是什么意思?谢谢!
  • 转到 Organizer,打开 Projects 选项卡并选择您的项目。您将在前面看到 Derived Data 和一个 Delete 按钮。
【解决方案2】:

在我看来一切都是正确的。您是否检查过您没有不小心用尾随空格或其他不可见字符命名文件?尝试将其命名为完全不同的名称(包括更改扩展名),然后重新命名。

【讨论】:

    【解决方案3】:

    我认为您需要 .plist 文件。那里有 Bundle 名称和标识符。

    【讨论】:

    • 我不认为我完全理解你。我已经有一个带有包名称/标识符的 *.plist 文件。
    • 应该没有必要,因为我的目标已经初始化了 *.plist 文件。
    • 然后确保您的 plist 中有捆绑名称、捆绑标识符、捆绑版本、捆绑版本字符串、短、捆绑显示名称、捆绑操作系统类型代码、捆绑创建者操作系统类型代码。这些是自动创建的,但可能出了点问题。我的意见,只要确保 plist 包含所有默认设置。
    • 我考虑过区分大小写,但事实并非如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    相关资源
    最近更新 更多