我将 sqlite.swift 更新到版本 0.11.4,当我创建包含两列的索引时,我的编译器会出错。
在使用命令之前
try db.run(table.createIndex([column1, column2], unique: true, ifNotExists: true))
更新后,它不再起作用。我应该使用可表达的。但我不是那么先进。
Contextual type 'Expressible' cannot be used with array literal
你能在这里帮我一把吗?
谢谢!!!
好的,我想出了问题。 我在这里添加它,以防其他人遇到这个问题。 在以前版本的 Swift 中,你可以将数组传递给可变参数。 使用较新版本的 Swift,您不能再这样做了。 我不得不将我的代码从:
do {
try db.run(table.createIndex([identifier], ifNotExists: true))
} catch let error {
Log.e("DB: Unable to create index for identifier. Error: (error.localizedDescription)")
}
自:
do {
try db.run(table.createIndex(identifier, ifNotExists: true))
} catch let error {
Log.e("DB: Unable to create index for identifier. Error: (error.localizedDescription)")
}
如果需要传递多个参数,只需用逗号分隔即可。
try db.run(table.createIndex(identifier1, identifier2, identifier3, ifNotExists: true))