【发布时间】:2012-11-01 16:56:34
【问题描述】:
如果我在方向更改期间更改 UICollectionView 的布局,我会在几轮旋转后得到 EXC_BAD_ACCESS。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
UICollectionViewLayout *layout = [[UICollectionViewFlowLayout alloc] init];
self.myCollectionView.collectionViewLayout = layout; // This causes EXC_BAD_ACCESS after a few rotations
}
这是UICollectionView 错误吗?还是我做错了什么?如果是错误,有没有办法在方向更改期间更改整个布局?
我注意到answer 中提到了同样的问题。使用 NSZombies 进行调试不会产生额外的信息。
【问题讨论】:
-
有没有想过这个问题?我在使用
[collectionView setCollectionViewLayout:layout animated:animated]更改布局时遇到了类似的问题。回溯看起来像:* thread #1: tid = 0x1c03, 0x01780098 libobjc.A.dylib`objc_msgSend + 12, stop reason = EXC_BAD_ACCESS (code=1, address=0xc0000000) frame #0: 0x01780098 libobjc.A.dylib`objc_msgSend + 12 frame #1: 0x008f6ed5 UIKit`-[UICollectionViewData _setLayoutAttributes:atGlobalItemIndex:] + 62 frame #2: 0x008f80f6 UIKit`__45-[UICollectionViewData validateLayoutInRect:]_block_invoke_0 + 1004 -
可能与stackoverflow.com/questions/15786084/…有关,也仍然开放。
-
有没有使用这种布局的 UIDynamicAnimator 呢? (编辑:如果这是 10 个月前发布的,我想不会。)
-
完全相同的问题和回溯。旋转设备时我正在更改布局。但就我而言,即使它是我的应用用户报告的首要崩溃,我也无法重现。
-
我仍然有相同的堆栈跟踪。我仍然无法解决这个问题。有人解决了吗?
标签: iphone ios exc-bad-access uicollectionview