【发布时间】:2015-06-12 02:51:29
【问题描述】:
当我使用 UICollectionView 时。我需要更改它的 dataArray 和 reloadData。但是当我删除dataArray中的一个对象时,我写了代码[collectionView reloadData];,我滑动collectionView然后错误来了,告诉我 *由于未捕获的异常'NSGenericException'而终止应用程序,原因: '* 集合 <__nssetm:> 在枚举时发生了变异。'我该如何解决这个问题?非常感谢!!!
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];
【问题讨论】:
-
您需要出示您的代码,否则没有人可以帮助您。
-
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];
-
它不会立即崩溃,当我这样做时,然后我滑动 CollectionView ,它会崩溃
-
这不是导致问题的代码。错误消息显示
NSMutableSet正在发生变异。这就是NSSetM所表示的。你需要去别处看看。首先,确保这发生在主线程上,因为所有 UI 调用都必须发生在主线程上,其中包括UICollectionView.reloadData
标签: ios