Link to SQLite wrapperfunc queryAll() -> [(String, String, String)]  {    do {        let sql = try DB?.prepare(SELECT city, zip , temp FROM weather)        var arr : [(city : String, zip : String, temp : String)] = []        for row in sql! {            arr += [(city: row[0] as! String, zip: row[1] as! String, temp: row[2] as! String)]                       }        return arr;                }    catch {        print(\(error))    }    return [(,,)]}Grabbing all the rows, and returning them as a tuple for later use.I've read the docs but I cannot think of a more efficient way to return all the rows to a TableViewoverride func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {    let cell : CustomTableViewController = self.tableView.dequeueReusableCell(withIdentifier: Cell)! as! CustomTableViewController    let DB : WeatherDataStorage = WeatherDataStorage()    var arr = [(city : String, zip : String, temp : String)]()    arr = DB.queryAll()    cell.cityLabel.text = arr[i].city    cell.zipLabel.text = arr[i].zip    cell.temperatureLabel.text = arr[i].temp    i += 1    return cell}EDIT: GIST
Sqlite.swift -- Selecting all rows and returning them in an array of tuples
swift;sqlite