【发布时间】:2016-10-19 11:53:32
【问题描述】:
在我的项目导航器中,我有这个结构
-MyApp
--ViewController.swift
--AppDelegate.Swift
--Main.StoryBoard
--info.plist
--JSONFiles
---test.json
-MyAppUITests
如您所见,这是创建新的单视图应用程序时发生的非常基本的结构。
我创建了一个名为 JSONFiles 的新组,并添加了一个名为 test.json 的 JSON 文件。
当我尝试使用以下方式获取文件时:
if let path = Bundle.main.path(forResource: "JSONFiles/test", ofType: "json") {
do {
let data = try NSData(contentsOf: URL(fileURLWithPath: path), options: NSData.ReadingOptions.mappedIfSafe)
let jsonData : NSData = NSData(contentsOfFile: path)!
allEntries = (try! JSONSerialization.jsonObject(with: jsonData as Data, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSArray
print(allEntries)
} catch let error as NSError {
print(error.localizedDescription)
}
} else {
print("Invalid filename/path.")
}
我得到错误:
文件名/路径无效。
如果我将 JSON 文件移至我们的组文件夹并将 forResource 更改为“测试”,它可以正常工作并在控制台中打印。
能告诉我如何让它从文件夹中读取吗?我可以将所有 JSON 文件放在根目录中,但我想稍微整理一下。
谢谢
【问题讨论】:
-
尝试“test”作为文件名
-
Bundle.main.path(forResource: "test", ofType: "json", inDirectory: "JSONFiles")工作吗? -
您检查编译后的应用程序包中的目录结构是否如您所愿?
-
组(黄色文件夹)是项目层次结构中的虚拟文件夹,它在文件系统中不存在物理上(与蓝色文件夹不同,它们是真实文件夹)。您的文件应该在文件夹
Resources中,而不是在任何子文件夹中。 -
@MartinR 我不知道如何检查,帮助?