Ios 如何使用Swift更新UITableView?

Ios 如何使用Swift更新UITableView?,ios,uitableview,swift3,Ios,Uitableview,Swift3,我正在尝试从SQlite数据库填充表视图。票证会在控制台中打印,但表视图中不会显示任何内容。更新和刷新的正确方式是什么?这是我的密码。谢谢 import UIKit import SQLite class TicketTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { var tickets = [String]() @IBOutlet weak var tab

我正在尝试从SQlite数据库填充表视图。票证会在控制台中打印,但表视图中不会显示任何内容。更新和刷新的正确方式是什么?这是我的密码。谢谢

import UIKit
import SQLite

class TicketTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    var tickets = [String]()
    @IBOutlet weak var table: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let dm = DatabaseManager.shared
        let db = dm.db!
        do {
            for row in try db.prepare(dm.tickets) {
                let ticket = row[dm.pick]
                tickets.append(ticket)
                debugPrint(ticket)
            }
            table.reloadData()
        } catch {}
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return tickets.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "ticket")!
        cell.detailTextLabel!.text = tickets[indexPath.row]
        return cell
    }     
}

动态表视图需要知道它们的委托和数据源。如果未设置委托和数据源,则可以在
viewDidLoad
函数中以编程方式添加它们。像这样:

override func viewDidLoad() {
        super.viewDidLoad()

        //Set delegate and datasource
        table.delegate = self
        table.dataSource = self

        let dm = DatabaseManager.shared
        let db = dm.db!
        do {
            for row in try db.prepare(dm.tickets) {
                let ticket = row[dm.pick]
                tickets.append(ticket)
                debugPrint(ticket)
            }
            table.reloadData()
        } catch {}
    }

动态表视图需要知道它们的委托和数据源。如果未设置委托和数据源,则可以在
viewDidLoad
函数中以编程方式添加它们。像这样:

override func viewDidLoad() {
        super.viewDidLoad()

        //Set delegate and datasource
        table.delegate = self
        table.dataSource = self

        let dm = DatabaseManager.shared
        let db = dm.db!
        do {
            for row in try db.prepare(dm.tickets) {
                let ticket = row[dm.pick]
                tickets.append(ticket)
                debugPrint(ticket)
            }
            table.reloadData()
        } catch {}
    }

您是否设置了tableView的
委托
数据源
?还要检查表的出口连接是否与TicketTableViewController连接?另一个问题是,要让您将viewDidLoad中的代码移动到ViewDidDisplay。(在所有情况下,不要忘记super…)您是否设置了tableView的
委托
数据源
?还要检查表的出口连接是否与TicketTableViewController连接?另一个问题是,要让您将viewDidLoad中的代码移动到ViewDidDisplay。(在所有情况下,不要忘记超级…)