我尝试使用 Swift 5.5 中的新 Async/Await 功能并尝试了以下代码
let url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(id)&country=at")
let (data, _) = try await URLSession.shared.data(from: url!)
let resultStruct = try jsonDecoder.decode(ResponseStruct.self, from: data)
每次执行此操作时,该try await URLSession.shared.data(from: url!)
部分都会引发错误。如果我抓住它并打印error.localizedString
,我总是会被“取消”。这发生在所有不同类型的 URL 上。我试图坚持我在网上找到的教程,但我在这里缺少什么?
编辑:我强制应用程序进入运行时异常以获取更多错误详细信息:
Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSURLErrorDomain Code=-999 "cancelled"
正如这篇文章解释了 iOS 中的 NSURLErrorDomain 错误代码 -999 ,当服务器的 SSL 证书有问题时会发生此错误,我认为不是这种情况,因为我正在访问 iTunes 服务器或请求被任何取消其他在我的应用程序中,对我来说似乎就是这种情况。