我正在使用SqLite库进行swift。我可以用这个方法返回一行,
func getById(id:Int64) -> Row?{
do{
let query=Users.filter(Id==id)
print(query.asSQL())
var data = try db!.pluck(query)
return data
}catch{
print("Error: \(error)")
return nil
}
}
此功能正在返回" Row
"没关系。但我使用tableView对象所以我需要一个dataSource。
我如何为tableView返回表并设置数据源,我还没有找到这样的例子。
最好的问候。
答案 0 :(得分:0)
您可以使用此代码:
我不知道你的所有课程,但这是获取SQLite3(swift)查询的主要方法,查看所有结果(如果是多个),追加它们并在结尾处返回整个数据。
//You say you want to return array of rows
func getById(id:Int64) -> [Row]? {
//Create empty array
var data = [Row]()
//build the query. I use UsersTable.entityName.filter(), but I don't know your structure
let query=Users.filter(Id==id)
do {
//for cycle to go to all of the results
for rowInfo in try db!.pluck(query) {
//Create variable. I don't know what you want. You can create it as Row() and after that add the information
let userData = Row()
//you need to use rowInfo, it store the SQL data. inside the key is from the table Structure. You used Users.filter, so I guess the struct with all column names is Users, so Users.name is the 'name' column
userData.name = rowInfo[Users.name]
//Apend the data
data.append(userData)
}
} catch {
return nil
}
//Return the array of Rows
return data
}