xcode使用fmdb,如何导入外部设计好的数据库文件
首先,我们需要在项目中导入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 替换沙盒,选择刚刚的沙盒,成功!