在启动视图控制器期间,我使用insertSections
,insertRows
,deleteRows
等执行一系列行/部分插入和删除操作。操作由后台进程的事件触发(当然,对表视图的实际调用是在主线程上执行的;它们也包含在beginUpdates
和endUpdates
中)。
viewWillAppear
中开始这些行操作时,由于行数据不一致,我最终会崩溃:attempt to delete row 1 from section 0 which only contains 1 rows before the update
。发生这种情况时,更新前的部分实际上有2行,但表视图显然无法正确识别。viewDidAppear
中启动完全相同的操作序列时,没有崩溃,行按预期进行动画制作。这看起来像表视图在出现之前快速运行的插入和删除序列存在问题。这是一个已知的限制,还是您对此问题有另一种解释?
答案 0 :(得分:1)
看起来你不需要操作实际的UITableViewCells,你可能只是操作某种视图模型(普通对象),准备它们,然后在viewWillAppear上用它们重新加载UITableView