SQLite.swift - 无法下标 Row 类型的值。 Swift 2

SQLite.swift - Cannot subscript a value of type Row. Swift 2

这个方法在我使用 Swift 1.2 时有效。但是现在,我不得不更新到 Xcode 并且我不得不将我的语言切换到 Swift 2。这是我用得很好的 swift 1.2 中的方法;

static func findById(idToFind : Int64) -> T? {

    let query = table.filter(id == idToFind)
    var results: Payment?
    if let item = query.first {

        results : T = Payment(id: item[id], imageName: item[image], type: item[type], deliveredPriceStr: item[deliveredPrice], orderID: item[orderId])


    }

    return results

}

现在我修改了 Swift 2 但无法管理;

 static func findById(idToFind : Int64) -> T? {

        let query = table.filter(id == idToFind)

        do {
            let query = try table.filter(id == idToFind)
            let item  = try SQLiteDataStore.sharedInstance.SADB.pluck(query)

            if try item != nil {

                let results : T = Payment(id: item[id], imageName: item[image], type: item[type], deliveredPriceStr: item[deliveredPrice], orderID: item[orderId])

            } else {

                print("item not found")

            }
        } catch {

            print("delete failed: \(error)")

        }
    }


        return results

    }

我收到此错误:"Cannot subscript a value of type Row"。我的项目的数据类型似乎已更改为行。我该如何解析它?我应该怎么办 ?

PS:我正在使用 swift2 分支。

我终于知道如何获取值了。现在很容易,行项目在 swift-2 分支上有 get 方法。所以新方法是 ;

static func findById(idToFind : Int64) -> T? {

    let query = table.filter(id == idToFind)
    var  results : T?


    do {
        let query =  table.filter(id == idToFind)
        let item  =  SQLiteDataStore.sharedInstance.SADB.pluck(query)

        if try item != nil {

            results = Payment( id: (item?.get(id))!, imageName: (item?.get(image))!, type: (item?.get(type))!, deliveredPriceStr: (item?.get(deliveredPrice))!, orderID: (item?.get(orderId))!)

        } else {

                print("item not found")

        }
    }
    catch {

        print("delete failed: \(error)")

    }

    return results

}

希望这对某人有所帮助。