ios - 在 Swift 中通过 SQLite 数据库导入和查询 - iOS

标签 ios sqlite core-data swift

我正在制作一个应用程序,该应用程序使用包含 5 个不同表的大型数据库。我想将该数据库导入应用程序包并能够通过表进行查询。用户不会编辑数据库,因此不需要添加和删除记录。

在应用中添加数据库的最佳方式是什么?

最佳答案

过程如下:

  1. 将数据库添加到您的包中。当你将它拖到你的项目中时,你可以选择将它添加到代表你的主应用程序的目标中。或者,查看目标设置,单击“构建阶段”并确认数据库出现在“复制捆绑资源”列表中。

  2. 使用类似 FMDB 的框架简化你的生活。这是用 Objective-C 编写的,但在 Swift 中也能很好地工作。你需要做的是:

    • 将 FMDB 的 .h 和 .m 文件复制到您的项目中;

    • 当系统提示创建“桥接头”时,执行此操作;

    • 将以下行添加到您的桥接头:

      #import "FMDB.h"
      

    按照这些步骤,您可以在您的 Swift 项目中使用这个用 Objective-C 开发的框架。

  3. 您现在可以使用 FMDB 框架编写 Swift 代码。例如,打开数据库的 Swift 代码,从名为 testxyz,看起来像:

    let path = NSBundle.mainBundle().pathForResource("test", ofType:"sqlite")
    
    let database = FMDatabase(path: path)
    
    if !database.open() {
        print("Unable to open database")
        return
    }
    
    if let rs = database.executeQuery("select * from test", withArgumentsInArray: nil) {
        while rs.next() {
            let x = rs.stringForColumn("x")
            let y = rs.stringForColumn("y")
            let z = rs.stringForColumn("z")
            print("x = \(x); y = \(y); z = \(z)")
        }
    } else {
        print("executeQuery failed: \(database.lastErrorMessage())")
    }
    
    database.close()
    

关于ios - 在 Swift 中通过 SQLite 数据库导入和查询 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26345902/

相关文章:

ios - 移除导航堆栈中的 ViewController

ios - UITableView - 单元格图像在滚动时发生变化

sqlite - 格式化儒略日

ios - 如何在 ModelIO MDLMesh 和 SceneKit SCNGeometry 之间来回转换?

ios - 同时关闭键盘和 View

ios - swift4 中 Core Data 的单元测试用例

objective-c - 在 Core Data 之外重用 NSManagedObjects 的结构

objective-c - 核心数据:在两个实体中查找的NSPredicate

python - 带绑定(bind)的 PyQt SQL 查询

iphone - iPhone sqlite3_column_text问题