gpt4 book ai didi

ios - 从按钮快速删除 uitableview 中的最后一个单元格

转载 作者:行者123 更新时间:2023-11-28 07:01:20 24 4
gpt4 key购买 nike

我的 tableview 单元格上有一个接受和拒绝按钮。当用户单击拒绝按钮时,它会从解析中删除数据并重新加载表。但是,当我到达最终请求时,点击拒绝会从 Parse 中删除数据,但单元格不会消失。

对于上下文我有一个名为 var requests = [PFObject]()

的 PFObject 数组

这是我的按钮代码

在我的cellForRowIndexPath

 cell.declineBtn.addTarget(self, action: "declineRequest:", forControlEvents: .TouchUpInside)

然后我实现函数declineRequest

func declineRequest(sender: UIButton) {
var cell: NotificationsTableViewCell = sender.superview!.superview as! NotificationsTableViewCell

let indexPath = self.tableView.indexPathForRowAtPoint(cell.center)!

let innerP1 = NSPredicate(format: "sender = %@ AND postId = %@ ", cell.requesterEmailLabel.text! , cell.postIdLabel.text!)

var innerQ1: PFQuery = PFQuery(className: "Requests", predicate: innerP1)
var query = PFQuery.orQueryWithSubqueries([innerQ1])

query.getFirstObjectInBackgroundWithBlock{
(object:AnyObject? , error:NSError?) -> Void in
if(error == nil){
object!.deleteInBackground();
loadNotifications(); // self.tableView.reloadData() is in this call
}
}
}
}

我需要以某种方式告诉表格数据数组为空。让我知道是否需要添加更多上下文。我没有尝试使用 commitEditingStyle editingStyle,而是希望按钮负责删除。

编辑#2 在尝试使用 block 在后台删除后,数据仍会被删除,但 TableView 仍不会删除 TableView 中剩余的最后一行。

这是代码

 query.getFirstObjectInBackgroundWithBlock{
(object:AnyObject? , error:NSError?) -> Void in
if(error == nil){
object!.deleteInBackgroundWithBlock {(success: Bool, error: NSError?)-> Void in
if (success) {
self.loadNotifications()

println("Load Notifications")
}
else {
println("cannot delete")
}
}
}
}

最佳答案

如果您确认您的数据库删除本身在 tableview 上下文之外工作,我怀疑存在竞争条件,即删除是异步的 (object!.deleteInBackground();) 并且在提交后立即重新加载查询到解析后端,因此比删除事务的委托(delegate)更快。

考虑使用 – deleteInBackgroundWithBlock: ( https://parse.com/docs/ios/api/Classes/PFObject.html#//api/name/deleteInBackgroundWithBlock :)。这样,一旦查询被(未)成功执行,就会调用回调,从而促进有效的重新加载。

关于ios - 从按钮快速删除 uitableview 中的最后一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31957813/

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