从UICollection中删除项目但是“数组索引超出范围”错误

时间:2015-10-01 01:47:03

标签: ios swift parse-platform uicollectionview

我正在使用Parse作为后端并将项目加载到UICollectionView中。一切都很好但我似乎无法正确删除某些范围的项目。 这是我的删除功能:

 LotNumber  Device  MeasureDate RowNumber 
 LotA       DevA    10/1/15 0:00    1 
 LotA       DevA    10/1/15 1:00    1 
 LotA       DevB    10/1/15 2:00    2 
 LotB       DevA    10/1/15 3:00    3 
 LotB       DevA    10/1/15 4:00    3 
 LotA       DevA    10/1/15 5:00    4 

我收到错误:致命错误:数组索引超出范围 我认为这是因为作为for循环循环它会丢失一个项目但保持原始计数。我检查以确保self.tasks和indexPaths返回我期望的内容。不知道还有什么可以尝试。 我怎么能重构这个?任何帮助或方向将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

尝试将self.collectionView!.deleteItemsAtIndexPaths(indexPaths)放在performBatchUpdates的完成处理程序中。

修改

看起来您正在尝试在访问self.tasks时删除项目。例如,您的任务有5个项目[A,B,C,D,E],您选择删除D& E.在第一次迭代中,您删除索引3处的项目(即D)。现在任务有4个项目[A,B,C,E]。在下一次迭代中,当您尝试访问索引4处的项目时,在上一次删除指向E之前,您将获得索引超出范围的错误。