如果我已将可取消集存储到ViewController中:
private var bag = Set<AnyCancellable>()
其中包含多个订阅。
1-我应该在deinit中取消订阅吗?还是自动完成工作?
2-如果是,如何取消所有存储的订阅?
bag.removeAll() is enough?
或者我应该遍历该集合并逐个取消所有订阅吗?
for sub in bag {
sub.cancel()
}
Apple表示订阅一直有效,直到存储的AnyCancellable在内存中为止。所以我想用bag.removeAll()
取消可取消对象就足够了,不是吗?
[存储对自己的订户的引用以便以后清理时,通常希望引用取消订阅。 anyCancellable提供了一种类型擦除的引用,该引用将任何订阅者转换为AnyCancellable类型,从而允许在该引用上使用.cancel()
,但不能访问订阅本身(例如,可以请求更多数据)。
尝试创建管道,然后not