我使用故事板向UICollectionView
添加了UIViewController
。此UICollectionView
使用自定义布局:UICollectionViewFlowLayout
的子类。
当我现在尝试在UICollectionView
...
// 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
是的,这是整个子类。最初我在这里放了很多东西,但是我在两种情况下都得到了错误:使用这个子类的最小版本以及更复杂的版本。
正如我上面提到的,唯一不会出现此错误的情况是使用默认流布局(现在是子类)。
这里出了什么问题?