【发布时间】:2013-10-26 21:59:08
【问题描述】:
iOS7 上 UICollectionViewData validateLayoutInRect 中的断言失败。
我正在尝试使用for 循环逐一删除所有UICollectionView 项目;我在下面发布了我的代码。我使用deleteItemsAtIndexPaths 删除了UICollectionView 项目。它在 iOS6 上完美运行,但在 iOS7 中崩溃,但有以下例外:
UICollectionViewData validateLayoutInRect 中的断言失败
我从collectionArray 然后self.collectionView 删除对象,使用indexPath 一个接一个。当我删除第 4 个对象时,它会在 iOS7 上引发 Assertion failure。这里我使用performBatchUpdates。
请帮助我在 iOS7 中获得正确的结果。分享正确的代码。 提前致谢。
try {
for (int i=count-1; i>=0; i--) {
[self.collectionView performBatchUpdates:^(void){
[collectionArray removeObjectAtIndex:i]; // First delete the item from you model
[self.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:i inSection:0]]];
} completion:nil];
[self.collectionView reloadData];
}
}
@catch (NSException *exception) {
}
@finally {
}
【问题讨论】:
-
@IvanLisovyi 第一个是向对象发送消息时发生的崩溃,而这里是由失败的断言引发的异常。一点关系都没有。第二个可能是相关的,但我不能肯定地说,因为这里没有说到底抛出了什么异常。
标签: ios objective-c ios7 xcode5 uicollectionviewlayout