FMDB没有在OS X上插入sqlite

时间:2015-10-14 08:52:23

标签: macos swift sqlite fmdb

我已经红了很多Stack Overflow的答案,不管我的问题是什么,但是他们没有帮我操作OS X.我想做的是创建隐藏的sqlite数据库,我可以存储一些数据。 数据库打开很好,在执行语句时我找不到任何错误。

以下是我用于创建数据库并插入其中的代码。 在iOS中有一个限制,如果它保存在DocumentsDirectory中,你只能写入sqlite商店,我尝试了这个解决方案,但它没有帮助。

  var documentFolderPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
  documentFolderPath = documentFolderPath.stringByAppendingString("/Hasher")

  if NSFileManager.defaultManager().fileExistsAtPath(documentFolderPath) == false {
      do {
          try NSFileManager.defaultManager().createDirectoryAtPath(documentFolderPath, withIntermediateDirectories: true, attributes: nil)
      }
      catch {
      }
  }

  let dbFilePath = documentFolderPath.stringByAppendingString("/" + self.kDatabaseInfo.fullName())

  let database = FMDatabase(path: dbFilePath)
  if database.open() {

      let createStatement = "CREATE TABLE IF NOT EXISTS cache (KEY TEXT NOT NULL, TYPE VARCHAR(5));"
      if database.executeUpdate(createStatement, withArgumentsInArray: nil) == true {
          print("Database setup successfull")
      }

      let insertStatement = String(format: "INSERT INTO %@ (KEY, TYPE) VALUES(?, ?)", self.kDatabaseInfo.tableName)
      database.executeQuery(insertStatement, withArgumentsInArray: [value, type])
      if let error = database.lastError() {
          print(error) // prints Error Domain=FMDatabase Code=0 "not an error" UserInfo={NSLocalizedDescription=not an error}
      }
      database.close()
  }

我正在运行OS X 10.11 - El Capitan

0 个答案:

没有答案