xcode使用fmdb,如何导入外部设计好的数据库文件

2020-01-16  本文已影响0人  Antlers777

首先,我们需要在项目中导入https://github.com/ccgus/fmdb下载好的src中的fmdb文件夹,将info.plist删掉。

然后建立一个header文件,命名bridge.h,在里面添加#import "FMDB.h",保存。在build settings的all Combined中搜索Objective-c Bridging Header 后双击填写bridge.h(刚刚命名的桥接文件)

在 Build Phases -> Link Binary With Libraries 中点击加号,搜索sqlite,添加 libsqlite3.0.tbd 到项目。

建立一个SQLiteManager swift文件 ,加入如下代码

import Foundation

// 数据库管理类

class SQLiteManager: NSObject {

 // 创建单例

 private static let manger: SQLiteManager = SQLiteManager()

    class func shareManger() -> SQLiteManager {

        return manger

    }

 // 数据库名称

 private let dbName = "你的数据库名字"

 // 数据库地址

 lazy var dbURL: URL = {

        // 根据传入的数据库名称拼接数据库的路径

        let fileURL = try! FileManager.default

            .url(for: .applicationSupportDirectory, in: .userDomainMask,

                 appropriateFor: nil, create: true)

            .appendingPathComponent(dbName)

        print("数据库地址:", fileURL)

        return fileURL

    }()

    // FMDatabase对象(用于对数据库进行操作)

    lazy var db: FMDatabase = {

        let database = FMDatabase(url: dbURL)

        return database

    }()

    // FMDatabaseQueue对象(用于多线程事务处理)

    lazy var dbQueue: FMDatabaseQueue? = {

        // 根据路径返回数据库

        let databaseQueue = FMDatabaseQueue(url: dbURL)

        return databaseQueue

    }()

}

其中数据库路径就是你新建的路径,现在来测试一下,

let db = SQLiteManager.shareManger().db

        if db.open() {

            print("数据库打开成功!")

        } else {

            print("数据库打开失败: \(db.lastErrorMessage())")

        }

        db.close()

如果成功,现在让我们做最重要的一步,去看一看沙盒,点击xcode上面选项栏的windows,Devices and Simulators,点击你的app,点击下面的设置标志,选择download Container... ,选择你下载后的路径,右击 打开 显示包内容,App Data-> Library->Application Support->你的数据库,这是是你在测试的时候新建的,现在将之前设计好的库直接拖进来替换掉,然后打开xcode回到之前的Devices 继续选择设置 标志,这次选择Replace Container 替换沙盒,选择刚刚的沙盒,成功!

上一篇 下一篇

猜你喜欢

热点阅读