2017-08-22 63 views
1

我使用SQLite庫的迅速。我可以用這種方法返回一行,如何在swift中爲SqLite返回多行或表?

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 
     } 
    } 

這個函數返回「」沒關係。但我使用的tableView對象,所以我需要一個數據源。

我怎樣才能返回表,並設置數據源進行的tableView,我還沒有發現這樣的一個例子。

此致敬禮。

回答

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 
} 
相關問題