gpt4 book ai didi

ios - UICollectionView 异常崩溃

转载 作者:行者123 更新时间:2023-12-01 17:55:41 24 4
gpt4 key购买 nike

我有一个关于 UICollectionView 的神秘问题.

我将我的 Collection View 添加到我的 tableview 单元格中,如下所示:

UICollectionViewFlowLayout *layout = [UICollectionViewFlowLayout new];
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;

UICollectionView *collection = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100) collectionViewLayout:layout];
[collection setDataSource:self];
[collection setDelegate:self];
[collection setBackgroundColor:[UIColor whiteColor]];
[collection registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];
collection.tag = kTagPhotoCollectionView;
[cell.contentView addSubview:collection];

我正在实现所有必要的委托(delegate)和数据源方法,您可以看到我已经设置了数据源和委托(delegate),并在我的标题中实现了它们。

当我去按 UIButton显示 UIImagePickerController并且应用程序因以下错误而崩溃:
2013-08-13 20:17:02.578 [619:60b] *** Assertion failure in -[PUCollectionView _createPreparedSupplementaryViewForElementOfKind:atIndexPath:withLayoutAttributes:applyAttributes:], /SourceCache/UIKit/UIKit-2891/UICollectionView.m:1397
2013-08-13 20:17:35.502 Sparky[619:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UICollectionView dataSource is not set'
*** First throw call stack:
(0x30a02ed3 0x3aa2b6c7 0x30a02da5 0x3138c72f 0x3305f647 0x32f4adf9 0x32f47139 0x32eea543 0x32b72feb 0x32b6e817 0x32b6e6a9 0x32b6e0bd 0x32b6decf 0x32b67bfd 0x309cdf71 0x309cb8ff 0x309cbc4b 0x30936541 0x30936323 0x353ca343 0x32f4f8a5 0x5f835 0x3af40ab7)
libc++abi.dylib: terminating with uncaught exception of type NSException

我已经设置了数据源,所以我不知道为什么会发生这种情况。

最佳答案

我遇到了类似的问题,但是在我以编程方式弹出 UICollectionViewController 后,我的应用程序崩溃了。出于某种原因(我认为这只是 SDK 中的一个错误)self.collectionView 在其 Controller 销毁后仍然存在,从而导致此故障:

*** Assertion failure in -[UICollectionView _createPreparedSupplementaryViewForElementOfKind:atIndexPath:withLayoutAttributes:applyAttributes:], /SourceCache/UIKit/UIKit-2935.137/UICollectionView.m:1305
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UICollectionView dataSource is not set'

解决方案只是覆盖 UICollectionViewController 中的 -dealloc 并手动释放 self.collectionView。弧码:
- (void)dealloc {

self.collectionView = nil;
}

希望这会为某人节省时间。

关于ios - UICollectionView 异常崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18217629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com