在sqlite.swift中的多个列上创建索引

时间:2017-10-06 15:35:33

标签: ios swift sqlite.swift

我将sqlite.swift更新为版本0.11.4,当我创建包含两列的索引时,我的编译器会重新编译错误。

在我使用命令之前

try db.run(table.createIndex([column1, column2], unique: true, ifNotExists: true))

更新后,它不再起作用了。我应该用Expressible。但我没有那么进步。

Contextual type 'Expressible' cannot be used with array literal

你能帮我一把吗?

感谢!!!

1 个答案:

答案 0 :(得分:0)

好的,我弄明白了这个问题。我在这里添加它以防其他人遇到问题。在以前的Swift版本中,您可以将数组传递给variadic参数。使用较新版本的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))