registerClass和registerNib UICollectionView之间的区别

时间:2016-08-10 13:41:31

标签: ios objective-c uicollectionview

我有UICollectionView,显示3种不同类型的自定义单元格。每个单元格在单独的xib中定义。之前我曾经使用registerClass来注册UICollectionView的单元格类。在单元格的内部初始化中,我用来从nib文件加载视图。使用这种方法,当cellForItemAtIndexPath中的单元格出列时,记录的随机崩溃很少,而异常是

  

由于未捕获的异常终止应用程序' NSInvalidUnarchiveOperationException',原因:'无法实例化名为(null)的类'

准确地说,当它试图从笔尖加载单元格时发生异常。现在我用registerClass替换registerNib,再次为UICollectionView注册nib文件的单元标识符,并从单元初始化器中删除nib加载代码。从那时起,上面的崩溃再次没有被报道。

我可以知道registerClass和registerNib的实际区别是什么吗?另外,为UICollectionView指定单元格的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

如果单元类是用代码编写的,请使用registerClass:方法。 如果单元格包含在Interface Builder NIB文件中,则使用registerNib:方法。