拖放到 Xcode 后无法读取 JSON 文件 - Xcode/Swift
Posted
技术标签:
【中文标题】拖放到 Xcode 后无法读取 JSON 文件 - Xcode/Swift【英文标题】:Can't read JSON file after dragging and dropping into Xcode - Xcode/Swift 【发布时间】:2017-09-15 17:54:20 【问题描述】:我不敢相信我被困在了如此简单的任务中。
我有一个名为 recipes.json 的 json 文件,我将它拖放到我的项目中,并检查了“如果需要,请复制项目”。 但是无论如何我都无法访问它。
func parseRecipesJSON(jsonFile: String) -> [RecipeItem]
var recipesArray = [RecipeItem]()
do
let jsonFile = Bundle.main.url(forResource: jsonFile, withExtension: "json")
print("## ", jsonFile as Any)
let data = try Data(contentsOf: jsonFile!)
let json = try JSONSerialization.jsonObject(with: data, options: [])
// my code
catch
print(error)
return recipesArray
应用程序在 let data = try 行崩溃。上一行输出 nil。 显然,即使我将它复制到 Xcode 项目中,该文件也不存在。我也无法在模拟器的文件中找到它。我在这里做错了什么?
编辑:相同的代码在 Playground 中运行良好。
将文件放入共享的 Playgrounds 文档文件夹后,我必须使用 let fileURL = PlaygroundSupport.playgroundSharedDataDirectory.appendingPathComponent(jsonFile)
。
【问题讨论】:
【参考方案1】:要检查的两件事。
jsonFile
实际上包含正确的名称吗?应该是"recipes"
。
您是否将 JSON 文件添加到您的目标?如果您转到 Build Phases,它应该会显示在 Copy Bundle Resources 中。由于它是一个资源文件,如果您选择它并查看文件检查器,在 Target Membership 列表中,有问题的目标应该显示为选中。如果没有,检查它应该将其添加到 Copy Bundle Resources。
【讨论】:
是的,它是#2 :) 我认为只要通过拖放将文件复制到 Xcode 中,它就会自动完成。谢谢以上是关于拖放到 Xcode 后无法读取 JSON 文件 - Xcode/Swift的主要内容,如果未能解决你的问题,请参考以下文章
Xcode Swift MacOS App,将文件拖放到 NSTextField