无法使用 Bundle main url 从文件中找到 URL

Can't find URL from files using Bundle main url

我正在尝试使用 AudioToolBox 库播放一些小的 .wav 文件,但我无法为我拖入项目文件夹(包含 类, 等等)

if let soundUrl = Bundle.main.url(forResource: name, withExtension: "wav") {
    //make use of AudioServicesCreateSystemSoundID...
}
else {
    print("sound wasn't found")
}

我尝试了所有可能的拖动组合到 xcode(如果需要复制项目、创建组、创建文件夹引用)并且我经常清理项目,但我仍然总是得到 "sound wasn't found"。我真的不知道该提供什么信息,但是我的方法直到几天前才起作用,然后突然停止了...

PS:不确定它是否有用,但我在 Bundle.main.bundlePath 打印了文件列表,但我没有找到任何我想要的文件,尽管它们都出现在左侧的文件列表(包含代码、xcassets、Main.storyboard 等)

  • 单击您的一个 wav 文件
  • 右侧会有一个选项列表
  • 此列表的最后一个选项是名为 目标成员
  • 的选项卡
  • 检查您选择的这个 wav 文件是否将您当前的项目标记为目标

希望对您有所帮助:)

在这种情况下,Daniel 的回答是正确的。但是,也可能会出现此消息,因为代码位于作为项目工作区一部分的框架包中。在这种情况下,Bundle.main 将为您提供主项目包,您应该使用不同的包构造函数,例如 Bundle(identifier: <id>)Bundle(for: type(of: <object>))(其中 object 是 class 出现在您要从中加载的包中)。

如果有人在使用 React Native 时遇到此错误,请确保您已将模型添加到 xcode 工作区(xcode -> 项目的左侧菜单 -> 添加文件到 "Yout Prj" -> select 你的文件)。当我在 vs 代码中添加我的模型并且 xcode 不知道在哪里可以找到时,我遇到了这个错误。