在我的项目导航器中,我有这个结构
-MyApp
--ViewController.swift
--AppDelegate.Swift
--Main.StoryBoard
--info.plist
--JSONFiles
---test.json
-MyAppUITests
如您所见,这是创建新的单一视图应用程序时发生的非常基本的结构。
我创建了一个名为JSONFiles的新组,并添加了一个名为test的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更改为" test"它工作正常,并在控制台中打印。
无论如何可以告诉我如何从文件夹中读取它?我可以在根目录中拥有所有JSON文件,但我想稍微整理一下。
由于
答案 0 :(得分:0)
您必须将您的json文件包含在“Copy Bundle Ressources”中。转到您的项目目标 - >构建阶段 - >复制Bundle ressources并在那里添加你的json文件。
然后,您应该能够使用以下函数检索路径:Bundle.main.path(forResource:“test”,ofType:“json”)。