加载 UICollectionView 时崩溃,为啥?

Posted

技术标签:

【中文标题】加载 UICollectionView 时崩溃,为啥?【英文标题】:Crash when loading UICollectionView in, why?加载 UICollectionView 时崩溃,为什么? 【发布时间】:2014-08-06 12:16:49 【问题描述】:

没有错误日志,仅此而已。

我有一个动态原型 UICollectionViewCell,并在这里加载:

override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! 

    var cell: LeftMenuCollectionViewCell

cell = collectionView.dequeueReusableCellWithReuseIdentifier("xxx", forIndexPath: indexPath) as LeftMenuCollectionViewCell // <- at this line something goes wrong

    return cell

我之前正在注册课程:

self.collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "xxx")

现在使用 ios 8 beta 5

【问题讨论】:

【参考方案1】:

您注册了UICollectionViewCell,而不是您自己的单元类LeftMenuCollectionViewCell。让

UICollectionviewCell as LeftMenuCollectionViewCell 

正在破坏并导致崩溃。要修复此注册正确的类

self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "xxx")

【讨论】:

【参考方案2】:

同意下面的两个解决方案,我注册单元格错误,但后来我发现了另一个问题,cell's outlets become nil。如果 UICollectionViewController 是通过 Interface Builder 创建的,则解决方案是删除整个注册

【讨论】:

【参考方案3】:

您错误地注册了单元格。试试这个:

self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "xxx")

【讨论】:

以上是关于加载 UICollectionView 时崩溃,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

触摸单元格时 UICollectionView 崩溃

将许多 gif 加载到 UICollectionView

当项目大小是自动的并且显示标题时,UICollectionView 崩溃

频繁重新加载collectionView时崩溃

UICollectionView:如果为空部分,则自定义 FlowLayout 崩溃

UICollectionViewFlowLayout 子类在滚动和重新加载时崩溃访问超出范围的数组