2016-08-10 2 views
1

私はUICollectionViewに3種類のカスタムセルを表示しています。各セルは別々のxibで定義されます。前に、私はUICollectionViewでセルクラスを登録するためにregisterClassを使用しました。セルの初期設定子の中で、私はnibファイルからビューをロードするのに使用しました。このアプローチでは、いくつかのランダムなクラッシュは、それがcellForItemAtIndexPathでセルをデキューするために行ったときに記録され、例外がキャッチされない例外により「NSInvalidUnarchiveOperationException」、理由にアプリを終了registerClassとregisterNibの違いUICollectionView

だった「という名前のクラス(null)をインスタンス化できませんでした。」

上記の正確なことは、ペン先からセルをロードしようとしたときに例外が発生したことです。今度はregisterClassregisterNibに置き換えて、nibファイルを再び登録してUICollectionViewのセルIDを指定し、セル初期化子からnibローディングコードを削除します。それ以来、クラッシュは再び報告されていません。

registerClassとregisterNibの実際の違いは分かりますか?また、UICollectionViewのセルを指定する最良の方法は何ですか?

+1

ドキュメントは何を表していますか? https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/#//apple_ref/occ/instm/UICollectionView/registerClass:forCellWithReuseIdentifier: –

答えて

4

セルクラスがコードで記述されている場合は、registerClass:メソッドを使用します。 セルがInterface Builder NIBファイルに含まれている場合は、代わりにregisterNib:メソッドが使用されます。

+0

そして両方が真であれば? –

+0

@lulian registerNib – NOlivNeto

関連する問題