在 Xcode 11 beta 5 或 6 中,我依赖的现有代码URLSession.DataTaskPublisher
停止工作。似乎DataTaskPublisher
从未发布任何值,但我不知道为什么。
我已经尝试过.sink
并.handleEvents
作为订阅者。我已经与发布者一起测试了 .sinkJust
并确认它在那里收到了一个值。
我也尝试过给DataTaskPublisher
aURL
和给它 a URLRequest
。我尝试了对 API 的请求,包括授权标头,以及对 google.com 和 apple.com 的基本请求。我已经尝试使用URLSession.shared
并创建一个新的URLSession
. 我也尝试过使用和不使用map
anddecode
运算符。
我已经使用XCTest
期望来确认测试每次都会超时,即使我给它一个 4 分钟的超时时间。
我刚刚创建了一个新的示例项目,并在根视图控制器中使用以下代码复制了问题:
override func viewDidLoad() {
super.viewDidLoad()
print("view did load")
URLSession.shared.dataTaskPublisher(for: URL(string: "http://apple.com")!)
.handleEvents(receiveSubscription: { (sub) in
print(sub)
}, receiveOutput: { (response) in
print(response)
}, receiveCompletion: { (completion) in
print(completion)
}, receiveCancel: {
print("cancel")
}, receiveRequest: { (demand) in
print(demand)
})
}
该项目打印“视图确实加载”但没有其他任何打印。关于我在哪里出错的任何想法?谢谢!