在带有子类UICollectionViewFlowLayout的UICollectionView中插入/删除项时,“view argument为nil”

时间:2013-08-20 18:47:40

标签: cocoa-touch

我使用故事板向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

是的,这是整个子类。最初我在这里放了很多东西,但是我在两种情况下都得到了错误:使用这个子类的最小版本以及更复杂的版本。

正如我上面提到的,唯一不会出现此错误的情况是使用默认流布局(现在是子类)。

这里出了什么问题?

0 个答案:

没有答案