2016-06-23 82 views
0

我有一個外部數據庫文件,我想從該文件訪問記錄到我的應用程序。以下是我從鏈接http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_8_Application_using_Swift_and_FMDB獲得的代碼。在下面的代碼中,已經解釋瞭如何創建一個數據庫。請幫我,我應該把我的外部源碼文件在Xcode以及如何通過FMDB在SWIFT中使用FMDB訪問外部數據庫

override func viewDidLoad() { 
    super.viewDidLoad() 

    let filemgr = NSFileManager.defaultManager() 
    let dirPaths = 
    NSSearchPathForDirectoriesInDomains(.DocumentDirectory, 
      .UserDomainMask, true) 

    let docsDir = dirPaths[0] as! String 

    databasePath = docsDir.stringByAppendingPathComponent(
        "contacts.db") 

    if !filemgr.fileExistsAtPath(databasePath as String) { 

     let contactDB = FMDatabase(path: databasePath as String) 

     if contactDB == nil { 
      println("Error: \(contactDB.lastErrorMessage())") 
     } 

     if contactDB.open() { 
      let sql_stmt = "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)" 
      if !contactDB.executeStatements(sql_stmt) { 
       println("Error: \(contactDB.lastErrorMessage())") 
      } 
      contactDB.close() 
     } else { 
      println("Error: \(contactDB.lastErrorMessage())") 
     } 
    } 
} 

以下是檢索使用FMDB從數據庫數據的代碼,但我無法知道我可以訪問我的外部訪問使用FMDB的數據庫。在這個例子中的人員訪問(),他已經在viewDidLoad中第一個創建的數據庫

@IBAction func findContact(sender: AnyObject) { 
    let contactDB = FMDatabase(path: databasePath as String) 

    if contactDB.open() { 
     let querySQL = "SELECT address, phone FROM CONTACTS WHERE name = '\(name.text)'" 

     let results:FMResultSet? = contactDB.executeQuery(querySQL, 
     withArgumentsInArray: nil) 

     if results?.next() == true { 
      address.text = results?.stringForColumn("address") 
      phone.text = results?.stringForColumn("phone") 
      status.text = "Record Found" 
     } else { 
      status.text = "Record not found" 
      address.text = "" 
      phone.text = "" 
     } 
     contactDB.close() 
    } else { 
     println("Error: \(contactDB.lastErrorMessage())") 
    } 
} 
+0

你有設置標誌嗎? – JAck

+0

在哪裏以及如何設置標誌? –

回答

0

我張貼完整的答案是如何設置的SwiftFMDB ..

它是循序漸進的過程..

  1. 將文件從fmdbmaster/src/fmdb複製/粘貼到您的項目。
  2. 然後,你必須創建橋接報#import "FMDB.h"
  3. 而且你必須設置標誌如下

    • 轉到項目>目標>構建設置>編譯來源

    • 在這裏,你會發現一些文件.h.m

    • 設置標誌'-fno-objc-arc'三個文件命名
      FMDatabase.mFMResultSet.m & FMDatabaseAdditions.m

    • 要設置您需要雙擊在編譯資源領域前的文件的標誌。而已。標誌將被設置。

還有任何疑問可以問我。