UICollectionView布局在iPad上崩溃,但在iPhone上运行良好

时间:2015-05-06 14:55:41

标签: ios objective-c iphone ipad uicollectionview

UICollection视图布局在ipad中崩溃,但工作正常iphone。 我们是否必须以不同于iphone的方式管理ipad的UICollection视图布局?

我的代码:

-(void)reloadData {


    if(collectionData!= nil)
    {
        collectionData = nil;
    }

    [self.collectionView reloadData];

}

-(void)setCollectionView {

    if(self.collectionView == nil) {
            //        self.collectionView = (UICollectionView *)[self.view viewWithTag:_wallCollectionView_tag];
       self.collectionView.dataSource = self;
        self.collectionView.delegate = self;
        self.collectionView.userInteractionEnabled = YES;
    }

}

`enter code here`- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{printf("\n = %s",__FUNCTION__);

    return 1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{

    return [collectionData count];
}

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout*)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if ( [ [ UIScreen mainScreen ] bounds ].size.width > 320) {
        return CGSizeMake(118, 118);
    }
    return CGSizeMake(100, 100);
}

1 个答案:

答案 0 :(得分:1)

*** Terminating app due to uncaught exception 'NSRangeException', reason:     '*** -[__NSArrayM objectAtIndex:]: index 5 beyond bounds [0 .. 4]' ***

这清楚地说,你试图访问超出数组边界的元素。检查下一个:

  1. 您对-numberOfItemsInSection方法和-cellForItemAtIndexPath方法使用相同的数组。
  2. 当collectionView正在更新时,你不会改变数组(删除\添加元素)。
  3. 您正确访问数据源数组:要检索具有5个元素的数组的最后一个元素,您应该使用键“4” - collectionData [4]或collectionData [[collectionData count] - 1]。