Ios UICollectionViewFlowLayoutAutomaticSize执行错误访问

Ios UICollectionViewFlowLayoutAutomaticSize执行错误访问,ios,uicollectionview,ios9,uicollectionviewlayout,Ios,Uicollectionview,Ios9,Uicollectionviewlayout,我有一个集合视图,对于某些单元格,我希望返回特定的高度,而对于其他单元格,我希望返回到自动大小。这是我的密码: -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ if(something){ retur

我有一个集合视图,对于某些单元格,我希望返回特定的高度,而对于其他单元格,我希望返回到自动大小。这是我的密码:

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    if(something){
        return UICollectionViewFlowLayoutAutomaticSize;
    }else{
        return some CGSize
    }
}
但是,当我尝试返回
UICollectionViewFlowLayoutAutomaticSize
时,会出现EXC\u BAD\u访问错误。我还尝试在流布局本身上将大小设置为自动标注:

UICollectionViewFlowLayout* layout = (UICollectionViewFlowLayout*)self.collectionViewLayout;
layout.itemSize = UICollectionViewFlowLayoutAutomaticSize;
当我分配给
UICollectionViewFlowLayoutAutomaticSize
时,我也会遇到同样的错误


我做错了什么?

不确定这是否与您的问题有关,但我还有一个带有流布局的集合视图的
EXC\u BAD\u访问。更改
。estimatedItemSize
解决了以下问题:

let flowLayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout

// this breaks
flowLayout.estimatedItemSize = CGSize(width: 100, height: 100)

// this does not break
flowLayout.estimatedItemSize = CGSize(width: 1, height: 1)
我的电池只有一个标签,所以它们比100x100小。我想如果你给出的估计尺寸大于实际尺寸是不好的

希望这对任何人都有帮助