Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios FMDB未显示任何内容-swift_Ios_Swift_Xcode_Fmdb - Fatal编程技术网

Ios FMDB未显示任何内容-swift

Ios FMDB未显示任何内容-swift,ios,swift,xcode,fmdb,Ios,Swift,Xcode,Fmdb,我想使用我的本地数据库。 要做到这一点,我正在使用 1.我将pod'FMDB'添加到pod文件中,然后pod安装 2.我将数据库拖到我的项目中(kashanmapDB\u upgrade\u 3-4.db) 3.我创建了一个名为DatabaseManager.swift的类 我的班级: import Foundation import FMDB class DatabaseManager { private let dbFileName = "kashanmapDB_upgrade_

我想使用我的本地数据库。 要做到这一点,我正在使用

1.我将
pod'FMDB'
添加到
pod文件
中,然后
pod安装

2.我将数据库拖到我的项目中(
kashanmapDB\u upgrade\u 3-4.db

3.我创建了一个名为
DatabaseManager.swift的类

我的班级:

import Foundation
import FMDB
class DatabaseManager {

    private let dbFileName = "kashanmapDB_upgrade_3-4.db"
    private var database:FMDatabase!

    init() {
        openDatabase()
    }

    func openDatabase() {

        let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
        let dbPath = URL(fileURLWithPath: paths).appendingPathComponent(dbFileName)
        let str_path = Bundle.main.resourceURL!.appendingPathComponent(dbFileName).path
        let database = FMDatabase(path: str_path)

        /* Open database read-only. */
        if (!(database?.open(withFlags: 1))!) {
            print("Could not open database at \(dbPath).")
        } else {
            print("opened database")
            self.database = database;
        }
    }

    func closeDatabase() {
        if (database != nil) {
            database.close()
        }
    }

    func query(queryString:String) {
        if let db = database, let q = db.executeQuery(queryString, withArgumentsIn: nil) {
            while q.next() {
                let data = q.string(forColumn: "id")
                // Do whatever here with fetched data, usually add it to an array and return that array
                print("data a a  \(data)")
            }
        }
    }


}
  • 在我的控制器中,我为我的类创建了一个变量并调用了我的函数:

      let db = DatabaseManager()
    
     // MARK: - View Lifecycle
     override func viewDidLoad() {
     super.viewDidLoad()
     createPageViewController()
     setupPageControl()
    
      db.openDatabase()
      db.query(queryString: "select * from Tags")
    
    }
    
  • 但我的控制台没有显示任何内容。我的问题在哪里?

    尝试以下步骤:

  • 首先,您必须卸载旧应用程序

  • 从Xcode以及finder->Project目录中删除旧的“kashanmapDB\u upgrade\u 3-4.db”文件

  • 再次复制/添加“kashanmapDB_upgrade_3-4.db”文件,确保复制选中的项目

                         OR
    
  • 在Xcode->转到应用程序项目->链接框架和库->单击“+”按钮,将“kashanmapDB\u upgrade\u 3-4.db”文件添加到项目中

  • 在Xcode项目-产品->清理项目和 然后->构建->运行


  • 完成了

    数据库打开成功吗?未打印任何内容,如
    无法在
    打开数据库或
    打开数据库
    首先将数据库复制到文档目录,然后打开