2

我试图在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 中已修复?

4

0 回答 0