gpt4 book ai didi

ios - 如何取消Set 中的某个特定AnyCancellable?

转载 作者:行者123 更新时间:2023-12-01 21:51:55 34 4
gpt4 key购买 nike

我有一个URLSession.shared.dataTaskPublisher,我将其存储在AnyCancellable -s中。当我收到一个值并完成后,我希望将此AnyCancellable从集合中删除。

如何识别此特定AnyCancellable,以及如何将其删除?或处理这些案件的最佳方法是什么?我检查了一下,一旦收到完成值,它不会自动从包中取出。

class RandomClass {
private var cancellableBag: Set<AnyCancellable>()

func someMethod() {
let request = URLRequest(...)
URLSession.shared.dataTaskPublisher(for: request)
.sink(...)
.store(in: &self.cancellableBag)
}
}

最佳答案

这是可能的方法。经过Xcode 11.4测试

class RandomClass {
private var cancellableBag = Set<AnyCancellable>()

func someMethod() {
let request = URLRequest(...)

var cancellable: AnyCancellable? = nil
cancellable = URLSession.shared.dataTaskPublisher(for: request)
// .. other operators here
.sink(receiveValue: {[weak self] value in
// ... process value here
self?.cancellableBag.remove(cancellable!) // << remove !!
})
self.cancellableBag.insert(cancellable!) // << store !!
}

关于ios - 如何取消Set <AnyCancellable>中的某个特定AnyCancellable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61540292/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com