web-dev-qa-db-ja.com

URLSession.shared.dataTaskPublisherが機能しないIOS 13.3

ネットワークリクエストを実行しようとすると、エラーが発生する

finished with error [-999] Error Domain=NSURLErrorDomain Code=-999 "cancelled"

URLSession.shared.dataTaskの代わりにURLSession.shared.dataTaskPublisherを使用すると、IOS 13.3。

これが私のコードです:

return  URLSession.shared.dataTaskPublisher(for : request).map{ a in
    return a.data
}
.decode(type: MyResponse.self, decoder: JSONDecoder())
.receive(on: DispatchQueue.main)
.eraseToAnyPublisher()

このコードはIOS 13.2.3。

3

キャンセル可能なセットを、サブスクライバーが実行している関数のスコープの "上"に移動する必要がありました。これは、キャンセル可能なセットがサブスクライバーの機能と同じスコープを持っているiOS 13.2では正常に機能しましたが、13.3では機能しなくなりました。 dataTaskPublisherは、上記のエラーでキャンセルされます。キャンセル可能なセットは、サブスクライバーを "ライブ"にする必要があります。開発者エラー。学んだ教訓。

0
user1195358