将现有的SQLite3数据库添加到Swift

时间:2015-03-26 00:00:17

标签: swift sqlite

我在本地已经存在一个我需要在Swift应用程序中访问的SQLite数据库。在我开发的过程中,我只是在我的计算机上引用该副本,一切正常。现在我需要包含该数据库;我认为这就像将其拖入支持文件并在那里引用它一样简单。这比我想象的要复杂一些,经过研究我发现了这个:

override func viewDidLoad() {
    super.viewDidLoad()
    let filemgr = NSFileManager.defaultManager()
    let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
        .UserDomainMask, true)
    let docsDir = dirPaths[0] as String
    databasePath = docsDir.stringByAppendingPathComponent("members.sqlite3")
    println(databasePath)
    memberDatabase = FMDatabase(path: databasePath)
    if memberDatabase == nil {
        println("error finding database")
    } else {
        if memberDatabase!.open(){
            println("database is ready")
        }
    }

打印"数据库已准备好"像预期的那样,但是当我运行之前运行的现有查询时,我得到no such table: member_data。我查看了databasePath指定的文件,实际上它是空的。我错过了什么?

1 个答案:

答案 0 :(得分:0)

我还没有测试过我是否可以写入这个数据库(我不需要为我的应用程序编写)但是在将文件包含在"支持文件"并将其添加到目标应用程序,这工作:

let path = NSBundle.mainBundle().pathForResource("members", ofType:"sqlite3")
memberDatabase = FMDatabase(path: path)

(注意:我使用FMDB