私は最近、すばらしいUICollectionView APIで遊んで、かなりの進歩を遂げましたが、誰かが私を助けてくれることを望んでいる問題で、ほぼ1日中立ち往生しています。
特定のセルの属性にカスタムの詳細を追加する必要があります。これを行うための正しいアプローチは、UICollectionViewLayoutAttributesをサブクラス化し、必要なプロパティをサブクラスに追加することであるように思われます。これまでのところ、LayoutAttributesSubclassを返すと、次のエラーが発生します。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: key cannot be nil'
これをしばらく追跡しようとしましたが、エラーは、サブクラスのインスタンスでrepresentedElementKindとrepresentedElementCategoryがnilであることに関連しているという印象を受けました。ただし、これらのプロパティは読み取り専用であるため、設定できません。不正行為をして、通常のUICollectionViewAttributesインスタンスを取得し、object_setClassを使用してLayoutAttributesSubclassに変更することで、なんとかしてエラーを回避できましたが、これにより、他の多くの問題が発生します。
要するに、上記のエラーが何を意味するのか、UICollectionViewLayoutAttributesサブクラスを正しく作成/使用する方法を知っている人はいますか?