为什么下面的代码会导致URLSession为data和error返回nil
let task = URLSession.shared.dataTask(with: storeRequest as URLRequest) { data, _, error -> Void in
// there is an error
if let networkError = error {
print("There was a network error")
return
}
// there is no data
guard let safeData = data else {
print("No network error, but no data either")
return
}
...在运行此代码时,有一个用户会击中No network error, but no data either行。
根据苹果在URLSession.dataTask上的文档
如果请求成功完成,则完成处理程序块的数据参数包含资源数据,错误参数为零。如果请求失败,则数据参数为零,错误参数包含有关故障的信息。
我读到:无论是data还是error都应该是非零的。但这似乎并没有发生在这里。在什么情况下都是零?
(如果有帮助的话-问题中的网址是https://buy.itunes.apple.com/verifyReceipt的https://buy.itunes.apple.com/verifyReceipt收据验证API,受影响的用户是苹果的评论员,他们一般不愿意协助调试。这段代码实际上是SwiftyStoreKit的一部分,它会为审阅者造成错误SwiftyStoreKit.ReceiptError error 1,但不会对其他任何人造成错误)。
https://stackoverflow.com/questions/57330730
复制相似问题