SQlite数据库SELECT EXC_BAD_INSTRUCTION代码EXC_I386_INVOP子代码0x0

时间:2016-05-26 18:48:33

标签: xcode swift sqlite

我正在尝试使用iOS项目中任何可用的sqlite库和swift语言运行简单查询。

这是我的代码(注释掉版本是另一个库的实现,它抛出相同的错误,这意味着问题在于底层的sqlite实现):

使用的图书馆:  (注释掉版本)SQLite.swift  (未注释版本)SQLiteDB     var values = [“”]

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: alice@mac.com, name: Optional("Alice")
//        }

        return values

抛出的错误是EXC_BAD_INSTRUCTION代码EXC_I386_INVOP子代码0x0

使用query:String.fetchAll

在行上抛出错误

1 个答案:

答案 0 :(得分:1)

解决了!

问题原来是在数据库路径中。

我在许多教程中看到的神奇公式不起作用:

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

这个工作正常,这是我的数据库资源所在的路径:

var resourcePath = NSBundle.mainBundle().resourcePath!