最近,我被分配处理崩溃报告,我发现有很多崩溃报告来自NSInternalInconsistencyException'源自' UICollectionView'。共同的两个原因是
'Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UICollectionView dataSource is not set'
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for number of items in section 0 when there are only 0 sections in the collection view'
我无法重现崩溃。对不起,我无法发布代码或完整的崩溃报告,但我会尽力简要说明情况。
我的UIViewController
持有UICollectionView
。 UIViewController
充当dataSource
的{{1}}和delegate
。并且在故事板中分配了UICollectionView
和dataSource
。
首先,我认为delegate
某处消失了,这会导致崩溃。所以我试图通过设置dataSource
来强制崩溃,但正如预期的那样它没有崩溃。我还在这里找到了一个解决方案,用于检查dataSource = nil
中的dataSource
是否等于nil或相应地处理它。我试图在那里强制layoutAttributesForElementsInRect
,但仍无法重现问题(
UICollectionView and Supplementary View crash)
dataSource = nil
以UIViewController
作为dataSource
的某种方式是否有可能以某种方式死亡,因此UICollectionView
没有dataSource?但是这不会与UICollectionView
相同,这不会导致应用程序崩溃吗?
如果我将UICollectionView.dataSource = nil
和UIViewController
分开,然后在UICollectionViewDataSource
分配dataSource
,会有帮助吗?
如果有人能指出我解决这个问题的正确方向,我将不胜感激。
由于
编辑:在这里发现了类似的问题iOS 9: UICollectionView dataSource is not set但是,还没有解决方案。