加载 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 崩溃