最新版本:2024年9月29日 • 0.10.1版本 • 更新日志
要求:iOS 14.0+ / macOS 11+ / tvOS 14.0+ / watchOS 7.0+ • Swift 6+ / Xcode 16+
📖 文档
GRDBQuery 帮助 SwiftUI 应用程序通过 GRDB 和 SwiftUI 环境访问本地 SQLite 数据库。
它有两种风格
@Query
属性包装器允许 SwiftUI 视图直接读取和观察数据库
/// Displays an always up-to-date list of database players.
struct PlayerList: View {
@Query(PlayersRequest()) var players: [Player]
var body: some View {
List(players) { player in Text(player.name) }
}
}
@EnvironmentStateObject
属性包装器帮助从 SwiftUI 环境构建 ObservableObject
模型
/// Displays an always up-to-date list of database players.
struct PlayerList: View {
@EnvironmentStateObject var model: PlayerListModel = []
init() {
_model = EnvironmentStateObject { env in
PlayerListModel(databaseContext: env.databaseContext)
}
}
var body: some View {
List(model.players) { player in Text(player.name) }
}
}
这两种技术都可以在单个应用程序中使用,因此开发人员可以进行快速实验、构建多功能的预览,并应用严格的模式和约定。根据您的需求选择 @Query
或 @EnvironmentStateObject
!
了解如何在文档中使用 @Query
和 @EnvironmentStateObject
。
查看 GRDBQuery 演示应用程序 和 GRDB 演示应用程序,获取各种示例。
🙌 @Query
很大程度上受到了 Core Data and SwiftUI,作者是 @davedelong,关键改进 由 @steipete 贡献,灵感来自与 @stephencelis 的对话。 非常感谢大家!