Swift:Bundle.main.path 返回 nil

4
我在我的资源文件中创建了一个名为“json”的文件夹,并将来自Finder的code.json文件拖放到其中。现在我想打开这个文件,但是...
Bundle.main.path(forResource: "code", ofType: "json", inDirectory: "json")

仅返回nil

我还尝试将其放入资源文件夹中,不使用子文件夹,并使用以下方式:

Bundle.main.path(forResource: "code", ofType: "json")

有没有人能帮助我?我做错了什么?

使用相同的结果。


1
.app包中是否包含您要访问的文件?该文件是否属于“复制文件”构建阶段的一部分? - Cristik
你是指我的项目->构建阶段->复制捆绑资源吗?不是的。我刚刚尝试通过点击“+”,然后选择“添加其他”,导航到我的资产文件夹,进一步到文件并使用“如果需要则复制项目”添加它,但结果仍然相同。 - Ginso
我建议您从Xcode项目导航器中进行拖放操作。此外,在构建完成后,请转到构建文件夹并检查JSON文件是否实际部署到应用程序包中。 - Cristik
2个回答

6

当您将文件夹拖到Xcode中时,需要引用文件夹,它的颜色是蓝色而不是黄色。

enter image description here

//

enter image description here


4

从您的问题中可以清楚地看出,您正在尝试将code.json文件添加到Assets.xcassets中,并尝试使用Bundle.main.path(forResource:)访问其路径,但这将始终返回nil,因为Assets.xcassets存在于Bundle中,然后您的文件存在其中。

尝试根据先前的答案建议直接将文件添加到项目中,该方法是正确的,Bundle.main.path(forResource: "code", ofType: "json")。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接