2017-02-26 2 views
0

Ich möchte meine lokale Datenbank verwenden. Dazu verwende ich FMDB.FMDB nichts anzeigen - swift

1.Ich hinzugefügt pod 'FMDB' zu pod file dann pod install

2.I schleppte meine Datenbank zu meinem Projekt (kashanmapDB_upgrade_3-4.db).

enter image description here

3.I erstellt eine Klasse namens DatabaseManager.swift

meiner Klasse:

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)") 
      } 
     } 
    } 


} 
  1. In meinem Controller ich eine Variable erstellt, um meine Klasse und rufen Sie meine Funktionen auf:

    let db = DatabaseManager() 
    
    // MARK: - View Lifecycle 
    override func viewDidLoad() { 
    super.viewDidLoad() 
    createPageViewController() 
    setupPageControl() 
    
        db.openDatabase() 
        db.query(queryString: "select * from Tags") 
    
    } 
    

aber meine Konsole nichts anzeigen. Wo ist mein Problem?

+0

Wurde die Datenbank erfolgreich geöffnet? –

+0

nicht gedruckt etwas wie 'Konnte Datenbank an nicht öffnen' oder 'geöffnete Datenbank' –

+0

zuerst Ihre Datenbank in Dokumentverzeichnis kopieren und dann öffnen – Rivendell

Antwort

0

Sie die folgenden Schritte:

  1. zuerst müssen Sie Ihre alte App deinstallieren.

  2. Löschen Sie Ihre alte "kashanmapDB_upgrade_3-4.db" Datei von Xcode sowie Finder -> Projektverzeichnis.

  3. Kopieren/Einfügen wieder "kashanmapDB_upgrade_3-4.db" Datei, die geprüftKopie ausgewählte Elemente gewährleisten

         OR 
    
  4. In Xcode-> zu Application Project Go -> Verknüpfte Framework und lib -> klicken Sie auf "+" Button "kashanmapDB_upgrade_3-4.db" Datei zu Ihrem Projekt

  5. In Xcode Projekt hinzufügen - Produkt -> Rein Projekt und dann -> Build -> Ausführen.

Das ist es geschafft ... !!!