gpt4 book ai didi

ios - reloadData() 不能快速工作

转载 作者:行者123 更新时间:2023-11-28 12:52:32 27 4
gpt4 key购买 nike

所以,我遇到了麻烦 - 无法重新加载 TableView 的数据,在命令行中我看到了良好的数据 - 当我单击按钮时 idMeet 已更改,但在模拟器中我没有看到刷新 TableView 单击按钮后,idMeet 已更改,我的查询也已更改。我知道我必须使用 tableView.reloadData(),但不明白将它写在哪里才能正常工作?

    var x = true;

@IBOutlet weak var myButton: UIButton!
@IBOutlet var tbRouteData: UITableView!
@IBAction func act(sender: UIButton) {
x = !x
getInfo()
}

override func viewDidLoad() {
super.viewDidLoad()
}

override func viewWillAppear(animated: Bool) {
self.getTmp()
}

func getInfo() -> NSMutableArray {
sharedInstance.database!.open()
var idMeet: Int
if x {
idMeet = 1
} else {
idMeet = 2
}

print(idroute)

let selectInfo: FMResultSet! = sharedInstance.database!.executeQuery("SELECT * FROM t1 AS one JOIN t2 AS two ON (one.id = two.id AND two.line_id = ?) ORDER BY two.position ASC", withArgumentsInArray: [idMeet])
...
return tmp
}

func getTmp(){

infoTmp = NSMutableArray()
infoTmp = getInfo()
}


// MARK: - Table view data source

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return infoTmp.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! PrivateCell

let my:Info = infoTmp.objectAtIndex(indexPath.row) as! Info
cell.listOfStop.text = my.Name.uppercaseString
return cell
}

最佳答案

这里有几个问题:

  1. getTmp 函数应该重新加载数据:

    func getTmp(){
    infoTmp = getInfo()
    tbRouteData.reloadData()
    }
  2. 现在您有了填充属性并重新加载表的函数,act 应该调用它,而不是 getInfo:

    @IBAction func act(sender: UIButton) {
    x = !x
    getTmp()
    }

    当您调用 getInfo 时,不会设置 infoTmp。并通过调用 getTmp 来集中 infoTmp 的填充并在一个地方重新加载表。

  3. 如果您在 TableView 中没有看到任何数据,请确保您已相应地设置 TableView 的 delegate。您可以在 IB 中或以编程方式执行此操作:

    override func viewDidLoad() {
    super.viewDidLoad()
    tbRouteData.delegate = self
    }

    当然,这假定您将 View Controller 定义为符合 UITableViewDataSource 并已实现适当的方法。在没有看到这些方法的情况下,我们无法判断那里是否还有其他问题。

关于ios - reloadData() 不能快速工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36018589/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com