簡體   English   中英

在 SwiftUI Combine 中取消接收器內的訂閱

[英]Cancel subscription within sink in SwiftUI Combine

有沒有辦法在接收器中取消訂閱? 下面似乎有效,但出現錯誤

在此處輸入圖像描述

您的訂閱必須是全球性的,否則它會立即消失。

class MySecondClass {
    ...
    var myGlobalSubscription: AnyCancellable?
    
    func subscribe() {
        myGlobalSubscription = myPublisher
            .sink(receiveValue: { [weak self] value in
                ...
                self?.myGlobalSubscription?.cancel()
            })
    }
}

或者,您可以使用發布者的.drop().prefix()函數來跳過一定數量的上游值。 或者您可以使用.filter()函數來過濾上游值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM