2017-03-12 92 views
-1

我有很多JSON文件,它們都位於名爲assets的新文件夾中。我如何訪問資產文件夾中某個文件夾中的一些JSON文件。這是我想要使用的文件的屏幕截圖。 http://prntscr.com/eiv7p4SWIFT 3訪問文件夾內的JSON

UPDATE: I can access mc-summer-0.json

這裏是我將訪問文件 「MC-夏季0.json」

if let path = Bundle.main.path(forResource: "mc-summer-0", ofType: "json") { 
     do { 
      let jsonData = try NSData(contentsOfFile: path, options: NSData.ReadingOptions.mappedIfSafe) 
      do { 
       let jsonResult: NSDictionary = try JSONSerialization.jsonObject(with: jsonData as Data, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary 
       if let times_to : [String] = jsonResult["times_to"] as? [String] { 

        for (value) in times_to { 
         print("\(value)") 
        } 

       } 
      } catch {} 
     } catch {} 
    } 

的代碼,但如果我想訪問一個文件,是在「assets」文件夾我將行更改爲if let path = Bundle.main.path(forResource: "assets/mc-summer-1", ofType: "json") { ,但不幸的是它不起作用。

+1

你嘗試過什麼?您需要發佈一些相關的代碼,我們可以幫助診斷問題。 – TheValyreanGroup

+0

我見過一些教程,但他們的json文件在項目中,而不是在多個文件夾中。這裏是他們提供的代碼'let url = NSBundle.mainBundle()。URLForResource(「Data」,withExtension:「json」) let data = NSData(contentsOfURL:url!)' –

+0

只要你的JSON文件包含在複製束資源構建階段中。在那裏檢查。 – TheValyreanGroup

回答

0

這些文件在您的項目中成組,而不是在單獨的文件夾中。很可能他們會在您的應用程序包的根級別,但我們無法確定您所展示的內容。我建議您爲模擬器構建應用程序,然後在Finder中打開生成的包並檢查它。

+0

我有這個問題一樣的問題:http://stackoverflow.com/questions/1496373/iphone-get-the-file-path-which-is-within-subfolder-of-resource-folder我只需要一個答案對於Swift 3而言,一切都會好起來的 –

+0

這實在是一個評論,而不是一個答案,因爲它試圖解釋如何訪問代碼中的文件。 – rmaddy

+0

@UniqueLoLApps不,你不這樣做,因爲你的文件不在子文件夾中。他們只是在你的項目組中。與您的資源包的子文件夾完全不同。 – rmaddy

-1

好了,萬一有人卡住就像我真正的解決辦法是消除資產「文件夾」,然後重新添加它,並選擇將其添加爲參考,而不是作爲一個羣體

+0

這不是一個資產文件夾,最重要的是,我自己,我敢肯定其他人都認爲你在談論與該項目預建的資產引用。您不應將組命名爲另一組或參考。 – TheValyreanGroup

+0

對不起,我立即重命名文件夾 –