2016-05-26 15 views
0

iOSプロジェクトで使用可能なsqliteライブラリとswift言語を使用して簡単なクエリを実行しようとしています。SQliteデータベースSELECT EXC_BAD_INSTRUCTIONコードEXC_I386_INVOPサブコード0x0

これは私が持っているコード(コメントアウトバージョンが別のライブラリの実装だった、それは問題を暗示同じエラーが根底にあるsqliteの実装であるスロー)である:使用

ライブラリ: (コメントアウト版)のSQLite

let dbQueue = try! DatabaseQueue(path: dbPath + "/database.db") 
     dbQueue.inDatabase { db in 

      let ratedMotorPowers = String.fetchAll(db, "select ratedMotorPower_kW from msc_sku_data_008_live2") // [String] 
     } 
//  let db = try! Connection(dbPath + "/configurator.db") 
//   
//  for row in try! db.prepare("select id from msc_sku_data_008_live2") { 
//   print("id: \(row[1])") 
//   values.append(String(row[1])) 
//   // id: 1, email: [email protected], name: Optional("Alice") 
//  } 

     return values 

[ ""] = (コメント解除バージョン)SQLiteDB VaRの値を.swiftスローエラーが

EXC_BAD_INSTRUCTIONコードEXC_I386_INVOPサブコード0x0です0

クエリの行でエラーがスローされます。String.fetchAll

+0

複数を使用していますスレッド? – Lefteris

+0

いいえ、単純なクエリで1つのスレッドを使用しています – VsMaX

+0

'try! 'の代わりに' try'を使います。何かエラーがありますか? – MirekE

答えて

1

解決済み!

データベースパスに問題があることが判明しました。

私は多くのチュートリアルで見てきた魔法の公式は動作しませんでした:

let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] 

この1つが動作し、これは私のデータベース・リソースが置かれたパスだった。

var resourcePath = NSBundle.mainBundle().resourcePath! 
関連する問題