我试图在选择函数的帮助下从连接的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修复了?