swiftUI sqlite使用
时间: 2024-09-15 11:14:12 浏览: 112
SwiftUI 和 SQLite 结合可以让你在 iOS、macOS 或 watchOS 应用程序中轻松地存储数据,而不必依赖于服务器或网络连接。SQLite 是一种轻量级的关系型数据库管理系统,非常适合本地数据存储。
在 SwiftUI 中使用 SQLite,你可以通过以下步骤操作:
1. **添加依赖**:
- 对于 iOS 13 及以上,你可以在 Xcode 的 Package.swift 文件中添加 `Swift包管理器` 对 `SQLite.swift` 的引用。
```swift
dependencies {
.package(url: "https://github.com/stephencelis/SwiftPM-SQLite.swift.git", from: "0.7")
}
```
2. **设置数据库**:
- 创建或初始化 SQLite 数据库,并处理连接错误。
```swift
import SQLite
private let dbQueue = DatabaseQueue(in: .main)
func setupDatabase() {
do {
try dbQueue.inTransaction { db in
try db.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)")
}
} catch {
print("Error setting up database: \(error)")
}
}
```
3. **CRUD 操作**:
- 插入数据:
```swift
func insertUser(name: String) {
try dbQueue.inTransaction { db in
try db.execute("INSERT INTO users (name) VALUES (?)", [name])
}
}
```
- 查询数据:
```swift
func getUsers() -> [User] {
return try dbQueue.map { row in
User(id: row[0], name: row[1])
}.filter { $0.id != nil }
}
```
4. **视图绑定**:
- 在 SwiftUI 中,你可以使用 Combine 或 Delegate 缓存数据,以便在界面更新时保持数据一致性。
```swift
struct ContentView: View {
@StateObject var viewModel = UsersViewModel()
// ...
}
```
阅读全文