我试图在select函数的帮助下从连接的 SQLite.swift 表语句中的表中选择所有列,但我总是收到以下错误:
Cannot invoke 'select' with an argument list of type '(Expression<Void>)'
这是产生错误的演示代码:
let messageId = Expression<String>("id")
let messageContent = Expression<String>("content")
let messageGroupId = Expression<String>("group_id")
let groupId = Expression<String>("id")
let groupName = Expression<String>("name")
if let db = try? Connection()
{
let messageTable = Table("message")
let groupTable = Table("group")
try! db.run(messageTable.create() { t in
t.column(messageId, primaryKey: true)
t.column(messageContent)
t.column(messageGroupId)
})
try! db.run(groupTable.create() { t in
t.column(groupId, primaryKey: true)
t.column(groupName)
})
let query = messageTable
.join(groupTable, on: messageTable[messageGroupId] == groupTable[groupId])
.filter(messageTable[messageGroupId] == "SOME GROUP ID")
.select(messageTable[*]) // THIS SELECT IS CAUSING AN ERROR - WHAT IS WRONG?
}
当我尝试使用STAR (表的所有字段)时,选择函数的最后一次调用总是导致错误。有什么方法可以使用星号运算符而不单独列出所有字段?
我正在使用 Xcode 7.0.1,也许这在 7.1 和 swift 2.1 中已修复?