registerClass 和 registerNib UICollectionView 的区别

Vis*_*kar 3 objective-c ios uicollectionview

我有一个UICollectionView显示 3 种不同类型的自定义单元格。每个单元格在单独的 xib 中定义。在我以前使用 registerClass 用UICollectionView. 在单元格的初始化程序中,我曾经从 nib 文件加载视图。使用这种方法,当它出列单元格时记录了很少的随机崩溃,cellForItemAtIndexPath并且异常是

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

准确地说,当它试图从笔尖加载单元时发生了上述异常。现在我替换registerClassregisterNib, 以再次注册 nib 文件的单元标识符UICollectionView并从单元初始化程序中删除 nib 加载代码。从那时起,上述崩溃就没有再发生过。

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

小智 5

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