我在Xcode 9中有一个命令行项目,我试图通过"添加文件到..."来读取我添加到项目中的文本文件。我使用以下行来获取文件的路径:
guard let filePath = Bundle.main.path(forResource: "stops", ofType: "csv") else {
fatalError("Cannot find CSV file")
}
当我运行它时,它打印出fatalError消息。我尝试在"复制捆绑资源"中添加文本文件。建设阶段。它仍然无法找到该文件。
我做错了什么?
答案 0 :(得分:0)
去年年初,我遇到了同样的问题 - 这是我的解决方法(我必须强调这是一个解决方案,希望现在有另一种方法可以做到)
Recipe.swift
} Recipe.json
))创建一个运行脚本阶段,将CSV中的数据加载到Swift类中:
set -e
DATA=$(cat "./MyProject/recipe.json" | base64)
echo "import Foundation" > "./MyProject/Recipe.swift"
echo "class Recipe {" >> "./MyProject/Recipe.swift"
echo " static let data = \"$DATA\"" >> "./MyProject/Recipe.swift"
echo "}" >> "./MyProject/Recipe.swift"
这会在Swift文件中生成一个类似于:
的类import Foundation
class Recipe {
static let data = "..."
}
然后,当您需要使用它时,您可以解码Recipe.data
。
当然这不是一个非常易扩展的解决方案,我确信你可以通过使用延迟初始化,直接在生成的类中添加base64解码,使脚本中的路径相对于{{1}这只是我的快速解决方案,使我能够继续完成项目的其余部分。
答案 1 :(得分:0)
我的问题是我首先创建了一个 ResponseJSON.swift
,然后将其重命名为 ResponseJSON.json
(更改为 .json 扩展名)并且没有被检测到。
解决方案: