当我使用UICollectionView时。我需要更改它的dataArray和reloadData。但是当我删除dataArray中的一个对象时,我编写了代码[collectionView reloadData] ;,我滑动了collectionView然后错误来了,告诉我 *因未捕获的异常而终止应用程序'NSGenericException',原因:'* 集合< __ NSSetM:0x14ea0160>在被列举时发生了变异。我该如何解决这个问题?非常感谢!!!
NSMutableArray *temp = [NSMutableArray arrayWithArray:self.dataArray];
for (Mysource *source in self.dataArray) {
if (source.isSelect) {
[temp removeObject:source];
}
}
self.dataArray = [NSMutableArray arrayWithArray:temp];
[self.CollectionView reloadData];
答案 0 :(得分:-1)
我相信,当你通过一些Collection(可能是一个循环)进行枚举时,你将从循环中的该Collection中删除一个对象。如下所示:
for (id object in someArray)
if (conditionSatisfied)
[someArray removeObject:object];
Objective-C中不允许这样做。您需要在临时集合中存储需要删除的对象,然后在循环结束后将其删除。