Couchbase LiveQuery 不适用于 "rows" 以外的其他 keyPath

Couchbase LiveQuery doesn't work with other keyPath than "rows"

我有一个问题:除了最新的 Couchbase 移动解决方案之外,我还使用 Xcode 和 Swift。如果我使用字符串 "rows" 来注册观察者然后收听它,LiveQuery 也可以完美地工作。但是我在我的应用程序中有一个视图,我需要两个实时查询。所以我打算用两个不同的关键路径制作两个 livequeries,例如第一个 "getTopicComments",第二个 "getTopicDetails",这样我就可以像下面这样区分它们。但正如我所说,它仅适用于关键路径 "rows"。我误会了吗?因为我完全不明白为什么它不能与另一个字符串一起使用。在我看来,正如我在 couchbase 的文档中读到的那样,注册实时查询时我使用的字符串不应该相关。

liveQueryOne.addObserver(self, forKeyPath: "getTopicComments", options: .new, context: nil)
liveQueryTwo.addObserver(self, forKeyPath: "getTopicDetails", options: .new, context: nil)

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if (keyPath == "getTopicComments") {
} else if (keyPath == "getTopicDetails") {
}
}

"rows" 是 CBLLiveQuery 上的 KVO 可观察 属性。这就是为什么您可以添加观察者并查找 KVO 通知的原因。实时查询背后的想法是,应用程序可以自动收到影响查询结果的数据库更改通知。 "rows" 属性 将在数据库更新时更新,这就是为什么您观察此 属性 以了解更改的原因。您在上面添加的 keyPaths 在 CBLLiveQuery 中不存在,因此您不会看到任何通知。