1

我已经使用情节提要添加了一个UICollectionViewUIViewControllerUICollectionView使用自定义布局: 的子类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”而终止应用程序,原因:“视图参数为 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

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

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

这里出了什么问题?

4

0 回答 0