合并的.sink方法在iOS 13.3上不起作用

时间:2019-12-23 12:27:21

标签: ios xcode swiftui combine ios13.3

当变量值更改时,我正在使用接收器方法来调用函数。 代码可在iOS 13.2.2上运行,但不能在iOS 13.3上运行。当segmentedSelected变量更改时,未调用函数segmentedChanged。

public class ChooseViewModel: ObservableObject {

    @Published var segmentedSelected = Int()


    init() {
        _ = $segmentedSelected
                .debounce(for: .seconds(0.1), scheduler: DispatchQueue.main)
                .sink(receiveValue: self.segmentedChanged(indexValue:))

    }

    func segmentedChanged(indexValue segIndex: Int) {
      print(segIndex)
    }

}

1 个答案:

答案 0 :(得分:2)

这可能是由于可撤销的固定释放(只是一个假设)。尝试以下

var cancellables = Set<AnyCancellable>()

init() {
    $segmentedSelected
            .debounce(for: .seconds(0.1), scheduler: DispatchQueue.main)
            .sink(receiveValue: self.segmentedChanged(indexValue:))
            .store(in: &cancellables)
}