2014-02-08 90 views
0

我想使用我創建的子類UICollectionViewCell。繼承UICollectionViewCell,愚蠢的問題

我的子類唯一的區別是該單元格有一個imageView屬性。 我編程做的一切 - 因未捕獲的異常「NSInvalidArgumentException」沒有故事板或發鈔銀行

- (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的屬性被實例化,我得到的,

終止應用程序,原因:' - [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,甲肝在評論中沒有看到這個答案。