Swift Parse.com UITableView 在更新 NSMutableArray 后不重新加载数据

Swift Parse.com UITableView doesn't reloadData after updating the NSMutableArray

我有一个应该显示用户的 UITableView,它是第一次显示,但在调用 reloadData() 时没有更新。

初始化tableView和reloadData函数的代码如下:

let query = PFQuery(className: UserModel.parseClassName())
    query.whereKey("gender", equalTo: current.sexe)
    query.limit = countPerPage
    query.skip = pageIndex * countPerPage
    query.order(byAscending: "fullname")
    query.findObjectsInBackground(block: {(objects: [PFObject]!, error: Error!) -> Void in

        if error == nil {

            for object in objects as! [UserModel]{

                self.userArray.add(object)
            }

            self.serachTable.reloadData()

        } else {
            print("error")

        }
    })

reloadData 必须在主线程上调用。在 reloadData 周围添加 DispatchQueue.main.async:

DispatchQueue.main.async {
        self.serachTable.reloadData()
}

首先从您的 self.userArray 中删除数据,然后添加

等数据

self.userArray.append(object)

在那之后调用了重新加载表视图。在执行此操作之前,请验证您的数据源和在 viewcontroller

中连接的委托