订阅对@Published 的更改

Subscribing to changes to @Published

我正在尝试将 query 的值绑定到位于 SwiftUI 视图中的搜索框。

class DataSet: ObservedObject {

... 

@Published var query: String = ""

init() {
    let sub = AnySubscriber<String, Never>(
        receiveSubscription: nil,
        receiveValue: { query in
            print(query)
            return .unlimited
        })
    self.$query.subscribe(sub)
}

...
}

当用户更改 query 的值时,我想在我的 ObservedObject 中过滤一些其他 属性。但是我在文档中找不到任何地方如何订阅 query 属性.

的更改

我会使用以下方法

class DataSet: ObservableObject {

    @Published var query: String = ""

    private var subscribers = Set<AnyCancellable>()
    init() {
        self.$query
            .sink { newQuery in
                    // do something here with newQuery
            }
            .store(in: &subscribers)
    }
}