【问题标题】:Swift SqLite SetupSwift SqlLite 设置
【发布时间】:2015-10-08 02:23:30
【问题描述】:

我正在使用 swift 为 IOS 9 制作应用程序,我的应用程序将包括使用数据库。我在互联网上搜索并设置了一个 SqLite 数据库,并正在使用 Firefox 插件来获得一个 GUI 来查看它。我做了一个 Xcode 项目,正如许多教程所说的那样,我去了我的 Build Phases > Link Binary With Libraries 并搜索了 libsqlite3.0.dylib 但我只找到了 libsqlite3.tbd 和 libsqlite3.0.tbd 。我说好的并点击 libsqlite3.tbd 希望它不会有关系,但我被困在了在 IOS 中使用 sqlite 的下一步。我不得不

    #import <sqlite3.h> 

但问题是,一旦发生这种情况,我会得到一个错误。我只需要一些关于如何让我的 SqlLite 数据库开始工作的分步说明!!!我在网上找不到任何不使用 IOS 7 并将 libsqlite3.dylib 添加到其构建阶段的内容。请帮忙!!

【问题讨论】:

  • 最好使用 CoreData 而不是 SQLLite 。我不确定有什么要求,但 CoreData 是更好的方法,除非你真的需要 SQLLite 提供的东西,并且在 CoreData 中可用。
  • 你做对了,在 Swift 中编译器默认使用类名,继续你的工作
  • 核心数据是否可供多个用户使用?两个以上的人可以添加到核心数据并查看吗?

标签: ios swift sqlite


【解决方案1】:

您可以尝试以下方法:

当展开 Link Binary 并点击 + ,然后点击 'Add other',当弹出窗口时点击 CTRL+Shift + G。在 Go to folder 字段中输入 /usr/lib -> Go 你会找到 'libsqlite3 .dylib'

【讨论】:

    【解决方案2】:

    为什么不使用 Swift SQLite 包装器,例如 https://github.com/groue/GRDB.swifthttps://github.com/stephencelis/SQLite.swift

    【讨论】:

      【解决方案3】:

      如果您想使用 Swift,那么这里有一个简单的解决方案。

      第 1 步:导入 SQLite

      import SQLite3
      

      第二步:创建并打开一个数据库文件

      let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
          .appendingPathComponent("YourFileName.sqlite")
      if sqlite3_open(fileURL.path, &db) != SQLITE_OK {
              print("error opening database")
          }
      

      第 4 步:创建表格

      if sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS Heroes (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, powerrank INTEGER)", nil, nil, nil) != SQLITE_OK {
              let errmsg = String(cString: sqlite3_errmsg(db)!)
              print("error creating table: \(errmsg)")
          }
      

      第 5 步:插入值

       var stmt: OpaquePointer?
      
              let queryString = "INSERT INTO Heroes (name, powerrank) VALUES (?,?)"
      
              if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
                  let errmsg = String(cString: sqlite3_errmsg(db)!)
                  print("error preparing insert: \(errmsg)")
                  return
              }
      
              if sqlite3_bind_text(stmt, 1, name, -1, nil) != SQLITE_OK{
                  let errmsg = String(cString: sqlite3_errmsg(db)!)
                  print("failure binding name: \(errmsg)")
                  return
              }
      
              if sqlite3_bind_int(stmt, 2, (powerRanking! as NSString).intValue) != SQLITE_OK{
                  let errmsg = String(cString: sqlite3_errmsg(db)!)
                  print("failure binding name: \(errmsg)")
                  return
              }
      
              if sqlite3_step(stmt) != SQLITE_DONE {
                  let errmsg = String(cString: sqlite3_errmsg(db)!)
                  print("failure inserting hero: \(errmsg)")
                  return
              }
      

      通过执行这些步骤,您可以轻松地在表格中插入一些行。对于其他操作,如阅读,请访问此分步指南 - Swift SQLite Tutorial

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-17
        • 2013-12-05
        • 1970-01-01
        • 1970-01-01
        • 2014-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多