База данных Sqlite с использованием FMDB Swift - PullRequest
0 голосов
/ 16 ноября 2018

Я установил модуль FMDB и создал Bridging-Header.h и импортировал FMDB, у меня есть база данных sqlite со всеми данными, которые я хочу получить, пытаясь получить данные из базы данных .sqlite, используя этот метод https://www.appcoda.com/fmdb-sqlite-database/и некоторые другие, но не показывает никаких данных, это мой класс dataManger

import UIKit
import FMDB

class DBManager: NSObject {



    static let shared: DBManager = DBManager()

    let databaseFileName = "xxxx.sqlite"

    var pathToDatabase: String!

    var database: FMDatabase!


    override init() {
        super.init()

        let documentsDirectory = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString) as String
        pathToDatabase = documentsDirectory.appending("/\(databaseFileName)")
}

    func openDatabase() -> Bool {
        if database == nil {
            if FileManager.default.fileExists(atPath: pathToDatabase) {
                database = FMDatabase(path: pathToDatabase)
            }
        }

        if database != nil {
            if database.open() {
                return true
            }
        }

        return false
    }


    func loadData() -> [Test]! {
        var testData: [Test]!

        if openDatabase() {
            let query = "SELECT * FROM duain"

            do {
                print(database)
                let rs = try database.executeQuery(query, values: nil)

                while rs.next() {
                    let movie = Test(duaName: rs.string(forColumn: "name_urdu") ?? "nill", duaId: rs.string(forColumn: "name_english") ?? "nill")


                    if testData == nil {
                       testData = [Test]()
                    }

                    testData.append(movie)
                }
            }
            catch {
                print(error.localizedDescription)
            }

            database.close()
        }

        return testData
    }
}

, и я получаю таким образом

 override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

         TestingData = DBManager.shared.loadData()


    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...