【问题标题】:Cannot read file from project subfolder无法从项目子文件夹中读取文件
【发布时间】:2018-06-11 12:53:33
【问题描述】:

我需要从项目子文件夹中读取 json

我的项目文件夹结构如下:

我的代码是:

if let url = Bundle.main.url(forResource: "default", withExtension: "json", subdirectory: "Localization"){
            do {
                let data = try Data(contentsOf: url)
                let decoder = JSONDecoder()
                let jsonData = try decoder.decode(Class.self, from: data)

            } catch {
                print("error:\(error)")
            }
        }

我在 stackoverflow 和其他页面上看到了另一个解决方案,但所有这些都看起来像我的,但在我的情况下,url 始终是nil 在这种情况下我的错误是什么?

【问题讨论】:

  • 确保您已添加正确的 Target ,如果需要,请在拖放时复制项目复选框 true
  • 我从 XCode 菜单中创建了组和文件
  • 您是否尝试删除该子目录部分?
  • 确保您的文件存在于 Copy Bundle 资源中
  • 请注意,Xcode 中的黄色文件夹是虚拟组,它们都代表文件夹Resources。捆绑包中的真实(子)文件夹是蓝色的。请看stackoverflow.com/questions/50004553/…

标签: ios swift swift4


【解决方案1】:

确保您的default.json 文件存在于您的应用目标的Build Phases 中的Copy Bundle Resources 中。

然后你可以使用它访问它,不需要subdir

if let path = Bundle.main.path(forResource: "default", ofType: "json") {
    do {
        let data = try Data(contentsOf: URL(fileURLWithPath: path))
    } catch {
        print(error.localizedDescription)
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2012-11-25
    • 1970-01-01
    • 2013-02-21
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多