UICollectionView
ストーリーボードを使用してを に追加しましたUIViewController
。これUICollectionView
は、カスタム レイアウトを使用します: のサブクラスですUICollectionViewFlowLayout
。
アイテムを自分に挿入したり削除したりしようとするとUICollectionView
…</p>
// allData is an array and the data source of collectionView
[self.allData addObjectsFromArray:dataToAdd];
// collectionViewIndexPaths is an array with one or more UIIndexPath objects
[self.collectionView insertItemsAtIndexPaths:collectionViewIndexPaths];
… アプリがクラッシュし、次の例外がスローされます。
*キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: 'view argument is nil'
ここでどのビュー引数が意味されているのかわかりません。
サブクラスを使用せずUICollectionViewFlowLayout
に Flow Default Layout を使用すると、すべてが正常に機能します。アイテムはコレクション ビューに挿入されます。
したがって、このエラーの原因は明らかです:UICollectionViewFlowLayout
サブクラスです!
@interface MyFlowLayout : UICollectionViewFlowLayout
@end
@implementation MyFlowLayout
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
self.itemSize = CGSizeMake(95, 160);
self.minimumLineSpacing = 10;
self.minimumInteritemSpacing = 10;
self.sectionInset = UIEdgeInsetsMake(10, 8, 10, 0);
self.headerReferenceSize = CGSizeMake(50, 2);
self.footerReferenceSize = CGSizeMake(50, 2);
}
return self;
}
@end
はい、それがサブクラス全体です。もともと私はここにたくさんのものを入れましたが、両方のケースでエラーが発生しました: サブクラスのこの最小バージョンとより複雑なバージョンで。
上で述べたように、このエラーが発生しない唯一のケースは、デフォルトのフロー レイアウト (現在はサブクラス) を使用している場合です。
ここで何がうまくいかないのですか?