无法在swift中使用FMDB加载数据库

时间:2016-02-24 08:09:56

标签: ios swift sqlite fmdb

我尝试使用登录/注册创建应用。我使用sqlite来保存用户信息和密码。但它没有工作,因为数据库没有被加载到代码中。

            let filemgr = NSFileManager.defaultManager()
            let dirPaths =
            NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
                .UserDomainMask, true)
            var docsDir = dirPaths[0] as! String
            print(docsDir)
            var databasePath = docsDir + "/contacts.sqlite"
            if filemgr.fileExistsAtPath(databasePath as String) {
                let contactDB = FMDatabase(path: databasePath as String)
                if contactDB == nil {
                    print("Error: \(contactDB.lastErrorMessage())")
                }
           //Remaining code
           }

我在其声明下面插入print (contactDB)以查看它包含的内容。

2016-02-24 13:27:59.445 Login[12850:1625864] The FMDatabase <FMDatabase: 0x7fd76b804750> is not open.
nil

这是我在控制台中得到的。 &#34;登录&#34;是此代码来自的类名。由于我无法加载数据库,因此无法取得进展。任何帮助深表感谢。提前谢谢!

编辑:添加contactDB.open()后问题得以解决。我还有问题。

<FMDatabase: 0x7fbb41f5fa70>
Optional(false)
2016-02-24 14:18:51.272 Login[13064:1649879] Error calling sqlite3_step (21: out of memory) rs

我在尝试打印错误时在控制台中收到此信息。

1 个答案:

答案 0 :(得分:0)

它说它不开放。试试contactDB.open()

if contactDB.open() {
  // Do your DB work here.
  contactDB.close()
} else {
  println("Error: \(contactDB.lastErrorMessage())")
}