gpt4 book ai didi

ios - 在 SWIFT 中使用 FMDB 访问外部数据库

转载 作者:行者123 更新时间:2023-11-30 13:18:37 25 4
gpt4 key购买 nike

我有一个外部数据库文件,我想将该文件中的记录访问到我的应用程序中。以下是我从链接 http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_8_Application_using_Swift_and_FMDB 获得的代码。在下面的代码中,已经解释了如何创建数据库。请帮助我应该将外部 sqlite 文件放在 Xcode 中的何处以及如何通过 FMDB 访问它

override func viewDidLoad() {
super.viewDidLoad()

let filemgr = NSFileManager.defaultManager()
let dirPaths =
NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
.UserDomainMask, true)

let docsDir = dirPaths[0] as! String

databasePath = docsDir.stringByAppendingPathComponent(
"contacts.db")

if !filemgr.fileExistsAtPath(databasePath as String) {

let contactDB = FMDatabase(path: databasePath as String)

if contactDB == nil {
println("Error: \(contactDB.lastErrorMessage())")
}

if contactDB.open() {
let sql_stmt = "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)"
if !contactDB.executeStatements(sql_stmt) {
println("Error: \(contactDB.lastErrorMessage())")
}
contactDB.close()
} else {
println("Error: \(contactDB.lastErrorMessage())")
}
}
}

以下是使用 FMDB 从数据库检索数据的代码,但我不知道如何使用 FMDB 访问外部数据库。在此示例中,该人访问了他首先在 viewDidLoad() 中创建的数据库

@IBAction func findContact(sender: AnyObject) {
let contactDB = FMDatabase(path: databasePath as String)

if contactDB.open() {
let querySQL = "SELECT address, phone FROM CONTACTS WHERE name = '\(name.text)'"

let results:FMResultSet? = contactDB.executeQuery(querySQL,
withArgumentsInArray: nil)

if results?.next() == true {
address.text = results?.stringForColumn("address")
phone.text = results?.stringForColumn("phone")
status.text = "Record Found"
} else {
status.text = "Record not found"
address.text = ""
phone.text = ""
}
contactDB.close()
} else {
println("Error: \(contactDB.lastErrorMessage())")
}
}

最佳答案

我正在发布有关如何在 Swift 中设置 FMDB 的完整答案..

这是一个逐步的过程..

  1. 将文件从 fmdbmaster/src/fmdb 复制/粘贴到您的项目。
  2. 然后您必须创建桥接 header #import "FMDB.h"
  3. 此外,您还必须设置标志,如下所示

    • 转到项目>目标>build设置>编译源

    • 在这里,您会找到一些文件.h.m

    • 在名为
      的三个文件上设置标志'-fno-objc-arc'FMDatabase.mFMResultSet.mFMDatabaseAdditions.m

    • 要设置标志,您必须双击编译资源中文件的字段前面。就是这样。将设置标志。

还有什么疑问可以问我。

关于ios - 在 SWIFT 中使用 FMDB 访问外部数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37985378/

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