2014-02-08 3 views
0

Я пытаюсь использовать созданный мной подклассом UICollectionViewCell.Подклассификация UICollectionViewCell, глупый вопрос

Единственное отличие моего подкласса заключается в том, что ячейка имеет свойство imageView. Я делаю все программно - нет раскадровки или NIBS

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { 

    PFUICollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"FlickrCell" forIndexPath:indexPath]; 
    cell.backgroundColor = [self generateRandomUIColor]; 


    NSURL *staticPhotoURL = [self.context photoSourceURLFromDictionary:[self.photos objectAtIndex:indexPath.row] size:OFFlickrSmallSize]; 



    **if (cell.imageView) {** 

     cell.imageView = [self.pfImageViewArray objectAtIndex:indexPath.row]; 
     return cell; 

    } 

} 

Однако, когда я пытаюсь проверить, если свойство клетки ImageView конкретизируется, я получаю,

Концевые приложение из-за неперехваченного исключением «NSInvalidArgumentException», Причина: '- [UICollectionViewCell imageView]: непризнанный селектор, отправленный в экземпляр

Это похоже на то, что ячейка не знает, что это PFUICollectionViewCell, и все еще думает, что это UICollectionViewCell.

Я знаю, что это простая вещь, но я не знаю, что я делаю неправильно,

Спасибо, Джон

+0

Установили ли вы контрольные точки и обеспечили, чтобы ячейка действительно была PFUICollectionViewCell? Вы можете сделать это с помощью 'NSLog (NSStringFromClass ([cell class]);' или я считаю, что если у вас есть точка останова после того, как ячейка установлена, она может просто сказать вам. –

+0

Да, и это не похоже! Странно, он все еще думает, что это UICollectionViewCell, но все мои другие объекты, находящиеся подклассами, работают нормально! Должен ли я использовать его после вызова dequeueReusableCellWithReuseIdentifier? – Woodstock

+0

Попробуйте выполнить кастинг после, но я не верю в это ... нет никакого способа регулярного UICollectionViewCell мог когда-либо создаваться с этим идентификатором («FlickrCell»)? –

ответ

0

Добавьте код ниже в методе -viewDidLoad (или только после того, как вы создали UICollectionView экземпляр):

[collectionView registerClass:[PFUICollectionViewCell class] 
    forCellWithReuseIdentifier:@"FlickrCell"]; 

UPD:

Oups, ВГ не видел этот ответ в комментариях.

Смежные вопросы