gpt4 book ai didi

ios - 如何在 swift 3 中使用现有的 SQLite? (FMDB)

转载 作者:搜寻专家 更新时间:2023-11-01 06:03:32 24 4
gpt4 key购买 nike

我想将 (Salary.db) 连接到我的 iOS (Swift) 项目并从数据库中获取数据?

第一步,如何在 Swift 3 中连接现有数据库?

let fileURL = try! FileManager.default
.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
.appendingPathComponent("Salary.db")

guard let database = FMDatabase(path: fileURL.path) else {
print("unable to create database")
return
}

guard database.open() else {
print("Unable to open database")
return
}

最佳答案

FMDB 是一个很棒的 Objective-C 库,尚未针对 Swift 进行更新,有时在 Swift 中感觉很别扭。

您可以考虑使用像 GRDB.swift 这样的库这是用 Swift 编写的,健壮的,fast ,并授予您与 FMDB 相同的功能:

import GRDB

// GRDB's DatabaseQueue is similar to FMDB's FMDatabaseQueue
let dbQueue = try DatabaseQueue(path: "/path/to/database.sqlite")

try dbQueue.inDatabase { db in
// Same as FMDB's -[FMDatabase executeUpdate:withArgumentsInArray:]
try db.execute(
"INSERT INTO pointOfInterests (title, favorite, latitude, longitude) " +
"VALUES (?, ?, ?, ?)",
arguments: ["Paris", true, 48.85341, 2.3488])

// Same as FMDB's -[FMDatabase executeQuery:] and FMResultSet
let rows = try Row.fetchCursor(db, "SELECT * FROM pointOfInterests")
while let row = try rows.next() {
let title: String = row.value(named: "title")
let isFavorite: Bool = row.value(named: "favorite")
let coordinate = CLLocationCoordinate2DMake(
row.value(named: "latitude"),
row.value(named: "longitude"))
}
}

GRDB 还允许您在不需要时避免编写 SQL。查看README.md获取更多信息。

关于ios - 如何在 swift 3 中使用现有的 SQLite? (FMDB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com