Collection view is crashing for some reason

时间:2015-06-20 09:40:36

标签: ios objective-c uicollectionview

    //collection view
    UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
    self.collectionView=[[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout];
    [self.collectionView setDataSource:self];
    [self.collectionView setDelegate:self];

    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"];
    [self.collectionView setBackgroundColor:[UIColor redColor]];

    [self.view addSubview:self.collectionView];

 }



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


// The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];

    cell.backgroundColor=[UIColor greenColor];
    return cell;
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(50, 50);
}

crash on :

 -[NSISUnrestrictedVariable collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance 0x7fce804111b0

What is that ? (the collection view is inside a view controller,tand he is inside a scrollview)

2 个答案:

答案 0 :(得分:1)

您的UICollectionView似乎已从内存中释放,但您仍在尝试访问它。

启用NSZombies,您将看到您对解除分配的内存进行调用的位置并相应地修复代码。

答案 1 :(得分:0)

找到解决方案。如此处所述,集合视图已从内存中释放。

原因是因为持有它的视图控制器位于scrollview中,并且我没有创建一个强大的属性来保留它,所以:

//the view controller that holds the collection

    @property(nonatomic,strong) BlisterView *blister;

解决了这个问题。