问题标签 [grdbcombine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 使用 GRDBCombine 获取唯一项并使用 SwiftUI 将它们显示在列表中
我在https://github.com/EricG-Personal/grdb_test.git有一个示例测试项目
在 ContentView.swift 中,我目前有一个显示数据库中所有项目的列表。
在此之下,我想要另一个列表,显示测试表中所有唯一的“名称”。
我迷失在 GRBD、Combine 和 SwiftUI 之间的详细信息中,并且不确定在使用 GRBDCombine 时为第二个列表提供数据库所需数据的代码是什么样的。
swift - 如何从两个发布者 A 和 B 创建一个 Swift Combine 发布者,其中发布者 B 使用来自发布者 A 的值?
我想创建一个 Swift Combine 发布者,它可以实现以下目标:
- 发布者应该由默认值(一个Swift 包)的更改或GRDB sqlite 数据库值的更改(使用GRDBCombine)触发。
UserDefaults
- 从Defaults
UserDefaults
发布者收到的更新应该在GRDBCombine发布者的数据库查询中使用。
这是我迄今为止尝试过的简化版本:
但是,这个发布者会产生以下错误(根据上面我的发布者的简化版本进行编辑):
Cannot convert return expression of type 'AnyPublisher<Publishers.FlatMap<_, AnyPublisher<Defaults.KeyChange<Int>, Never>>.Output, Publishers.FlatMap<_, AnyPublisher<Defaults.KeyChange<Int>, Never>>.Failure>' (aka 'AnyPublisher<_.Output, Never>') to return type 'AnyPublisher<[Task], Never>'
我敢打赌,两个发布者的值不同是有问题的:[Task]
和Defaults.KeyChange<Int>
. 但是,我找不到解决此问题的方法。