Этот метод работал, пока я использовал 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
}
И я получаю эту ошибку: «Невозможно подписать значение типа Row». Тип данных моего элемента, похоже, изменился на Row. Как я могу разобрать его? Что я должен делать ?
PS: я использую ветку swift2.