JSON网络请求未输入URLSession.shared.dataTask

问题描述 投票:1回答:1

我在找出为什么我的dataTask返回空结果时遇到问题。在经过My NetworkingManager类时,似乎从未输入URLSession.shared.dataTask。有人知道为什么吗?

她是我的NetworkingManager,正在应用程序的ContentView中使用:

class NetworkingManager: ObservableObject {
    var didChange = PassthroughSubject<NetworkingManager, Never>()

    var showList = ShowResultsAPI(results: []) {
        didSet {
            didChange.send(self)
        }
    }

    init() {
        guard let url = URL(string:  "https://radio80k.airtime.pro/api/live-info") else {
            return }
        URLSession.shared.dataTask(with: url) { (data, _, _) in
            guard let data = data else {
                return }

            let showList = try! JSONDecoder().decode(ShowResultsAPI.self, from: data)

            DispatchQueue.main.async {
                self.showList = showList
            }

        }.resume()
    }
}

json swift nsurlsessiondatatask
1个回答
0
投票

我认为您的编码看起来正确。请记住,该请求是紧急的。在调试URLSession.shared.dataTask时,您会认识到,起初调试器正在跳过dataTask。 URLSession收到响应后,将再次输入URLSession.shared.dataTask。我建议在您的警卫声明中设置一个断点。然后再次调试该过程,并查看调试器是否进入该过程。

观察完成处理程序中的响应和错误以查看是否发生错误也很有趣。

     URLSession.shared.dataTask(with: url) { (data, response, error) in
       if let error = error {
            print(error)
            return
        }
        guard let httpResponse = response as? HTTPURLResponse,
                    httpResponse.statusCode == 200,
                    let data = data
                    else {
                        print("ResponseProblem")
                        print(response)
                        return
                }
热门问题
推荐问题
最新问题