2016-06-23 2 views
0

외부 데이터베이스 파일이 있는데이 파일의 레코드를 내 응용 프로그램에 액세스하려고합니다. 다음은 링크 http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_8_Application_using_Swift_and_FMDB에서 얻은 코드입니다. 다음 코드에서는 데이터베이스를 만드는 방법을 설명했습니다. 내가 엑스 코드 내 외부 SQLite는 파일을 두어야 방법 FMDB를 사용하여 데이터베이스에서 데이터를 검색하는 코드입니다하지만 난 내 외부에 액세스 할 수있는 방법을 알 수없는하고 다음 FMDBSWIFT에서 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

.. Swift에서 어떻게 설정하는 것이 전체 대답을 게시하고 그가 처음있는 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

에 액세스 한 ..

  1. 파일을 fmdbmaster/src/fmdb에서 프로젝트로 복사/붙여 넣기하십시오.
  2. 은 다음 당신은 당신은 또한 당신이 여기에 소스를

  3. 를 컴파일>>> 대상 프로젝트 설정을 빌드

    • 이동을 다음과 같이 플래그를 설정해야 헤더를 #import "FMDB.h"

    • 가교 만들어야합니다 일부 파일을 찾을 수 .h.m

    • 플래그를 '-fno-objc-arc' 세 파일에 설정합니다 , FMDatabase.m
      이름 FMResultSet.m & FMDatabaseAdditions.m

    • 당신이 컴파일 자원 파일의 필드 전면에 더블 클릭해야하는 플래그를 설정합니다. 그게 전부 야. 플래그가 설정됩니다.

아직도 어떤 당신이 날을 요청할 수 있습니다 의심한다.

관련 문제