Bundle.main.path(forResource:ofType:inDirectory:)

Bundle.main.path(forResource:ofType:inDirectory:)

提问人:stoney 提问时间:1/13/2022 最后编辑:stoney 更新时间:1/13/2022 访问量:222

问:

我正在尝试从我的捆绑包中加载一个 json 文件,但只说前 100 个条目。是否可以将 Bundle.main.path(for...) 与 url 上使用的“&limit=Int”一起用于从 API 中获取?

我不想将整个文件加载到我的数组中。

我正在使用Paul Hudson json从itunes api获取歌曲的简单/不错的示例。此加载器工作正常。我只是想知道如何处理更大的文件,以备后用。我找到了 .prefix(Int) 来修剪我的数组,但我想不必加载整个文件。

'''

func loadData() {
        /* guard let url = URL(string: "https://itunes.apple.com/search?term=taylor+swift&entity=song&limit=\(count)") else {
         print("Invalid URL")
         return
         } */
        guard let url = Bundle.main.url(forResource: "TaylorSwift12", withExtension: "json") else { fatalError("Could not find TaylorSwift.json") }
        let request = URLRequest(url: url)
        URLSession.shared.dataTask(with: request) { data, response, error in
            if let data = data {
                if let decodedResponse = try? JSONDecoder().decode(Response.self, from: data) {
                    DispatchQueue.main.async {
                        self.results = decodedResponse.results
                    }
                    return
                }
            }
            print("Fetch failed: \(error?.localizedDescription ?? "Unknown error")")
        }.resume()
    }

'''

JSON的

评论

0赞 stoney 1/13/2022
好的,我还不明白如何输入代码......
0赞 justintime 1/13/2022
您无法将 JSON 文件的一部分加载到内存中,如果它太大,您可能希望将其拆分为多个文件。
0赞 stoney 1/13/2022
这个 stackoverflow 的答案 Some How 并不让我感到惊讶

答: 暂无答案