在 PFQueryTableViewController 中删除单元格和 [self loadObjects] 时,在 -[UITableView _endCellAnimationsWithCont

Posted

技术标签:

【中文标题】在 PFQueryTableViewController 中删除单元格和 [self loadObjects] 时,在 -[UITableView _endCellAnimationsWithContext:] 中出现断言失败【英文标题】:When delete cell and [self loadObjects] in PFQueryTableViewController, it gets Assertion failure in -[UITableView _endCellAnimationsWithContext:] 【发布时间】:2015-07-11 14:17:37 【问题描述】:

我愿意在 PFQueryViewController 的单元格中删除单元格并显示重新加载 tableView。

但是,当我删除并刷新 TableView 时,出现错误:" *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-3318.93/UITableView.m:1582"

在这个错误码之后,我在Parse中检查数据,删除单元格的数据被删除。

我看过这个链接,但我不确定为什么在我的代码中得到断言。 当我使用 [self loadObjects] 时。 https://parse.com/questions/refresh-data-in-a-pfquerytableviewcontroller

if (editingStyle == UITableViewCellEditingStyleDelete) 
     PFObject * object = [self.objects objectAtIndex: indexPath.row];
     [object deleteInBackgroundWithBlock:^(BOOL succeeded, NSError *error) 
         if (succeeded) 
             [self loadObjects];
         else
         
     ];

你能给我一些建议吗?

【问题讨论】:

你应该包含更多的实际错误信息——应该比assertion failure更多的信息。 感谢您的回复。我只能在我写的时候得到这个错误代码。 2015-07-12 01:18:35.347 ParseStarterProject[19979:4424938] 警告:正在主线程上执行长时间运行的操作。中断 warnBlockingOperationOnMainThread() 进行调试。 2015-07-12 01:18:36.098 ParseStarterProject[19979:4424938] *** 断言失败 -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-3318.93/UITableView.m:1582 那么你在warnBlockingOperationOnMainThread()上设置断点了吗? 【参考方案1】:

升级到更新的 parse sdk 后,我遇到了同样的问题。不知道究竟是什么版本,但这是我解决断言失败的方法,只需在loadObjects 之后调用reloadData

PFObject * object = [self.objects objectAtIndex: indexPath.row];
 [object deleteInBackgroundWithBlock:^(BOOL succeeded, NSError *error) 
     if (succeeded) 
         [self loadObjects];
         [self.tableView reloadData];
     else
        //handle your error
     
 ];

【讨论】:

感谢您的重要建议!感谢您的宝贵建议,我做到了。非常感谢:) 那么上面的答案解决了你的问题? Parse 一定改变了 loadObjects 方法中的某些内容... 我遇到了同样的问题。如果你一步一步使用调试器,你会看到 - (BFTask *)loadObjects:(NSInteger)page clear:(BOOL)clear 调用 [self.tableView reloadData];但是我不明白它不起作用。顺便说一句,您的解决方案对我有用,谢谢。也许是因为BFTask,我记得在旧版本中没有loadObject。 >>Eric 是的,感谢您的建议,我解决了。 >>里卡多谢谢你的信息,我会检查BFTask谢谢:) 不错。我使用这两个电话中的一个或另一个与之抗争了几个小时。从来没有想过要在音乐会上使用它们。邪恶的天才!感谢您的支持!

以上是关于在 PFQueryTableViewController 中删除单元格和 [self loadObjects] 时,在 -[UITableView _endCellAnimationsWithCont的主要内容,如果未能解决你的问题,请参考以下文章

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据