我正在使用HMSegmentedControl框架构建实验应用程序。在这个应用程序上,我正在尝试将UICollection视图添加到xib文件上的视图中,但我遇到了麻烦。应用程序崩溃了,我明白了:
2016-02-01 10:23:40.693 SegmentControlExperimentation[1328:49671] *** Assertion failure in -[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewCategory:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.30.14/UICollectionView.m:3690
2016-02-01 10:23:40.699 SegmentControlExperimentation[1328:49671] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier MyCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
我一直在寻找它,但我无法找到解决方案。 所以我创建了一个github仓库,并在此链接上克隆了我的代码:https://github.com/nascimentorafael/SegmentControlExperimentation 这是一个非常小而简单的代码。如果运行它,将导致此崩溃。所以看一下ViewController类和view.xib。
我希望有人能帮助我。
答案 0 :(得分:1)
我浏览了你的github存储库,发现你没有以正确的方式练习UICollectionView。但是,如果您只想避免崩溃,只需注释掉代码102-105& ViewController.m中的第128行
如果您想在view.xib中放置您的collectionView,则需要在view.h中插入此行。
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
在view.xib中引用上面的插座并在ViewController.m中注释掉第35-37行
然后在 - (void)viewDidLoad {}
中为View *视图添加以下代码
UINib *cellNib = [UINib nibWithNibName:@"CustomCollectionViewCell" bundle:nil];
[view.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"MyCell"];
view.collectionView.delegate = self;
view.collectionView.dataSource = self;
请理解,上述建议是您当前存储库的最小更改,可能不是最佳做法。有许多事情需要加以考虑,根据每种情况,组合会有很大差异。