2017-09-15 281 views
1

我不敢相信我一直被困在這樣的應該是一件容易的事情。拖放到Xcode後無法讀取JSON文件 - Xcode/Swift

我有一個名爲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項目中,該文件也不存在。我也無法在模擬器的文件中找到它。我在這裏做錯了什麼?

編輯:相同的代碼在遊樂場中工作正常。 將文件放入共享的Playgrounds文檔文件夾後,我必須使用let fileURL = PlaygroundSupport.playgroundSharedDataDirectory.appendingPathComponent(jsonFile)

回答

4

2件事檢查。

  1. jsonFile實際上是否包含正確的名稱?它應該是"recipes"
  2. 您是否將JSON文件添加到目標?如果你去建立階段它應該顯示在複製包資源。由於它是一個資源文件,如果選擇它並查看文件檢查器,則在目標成員列表中,有問題的目標應顯示爲已選中。如果不是,檢查它應該將其添加到複製捆綁軟件資源。
+1

是的,它是#2 :) 我認爲它是通過將文件拖放到Xcode中複製文件後自動完成的。 謝謝 – Tarek