2012-07-19 33 views
4

我想爲我的UITableView創建自定義單元格。發送到實例的無法識別的選擇器自定義單元格

因此,我創建了一個類(UITableViewCell),並將其命名爲HomeCell。這個類有一個名爲titleCell的標籤的xib文件。

在我的cellForRowAtIndexPath方法我說:

HomeCell *cell = (HomeCell *)[tableView dequeueReusableCellWithIdentifier:@"HomeCell"]; 

    if(cell == nil){ 
     NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"HomeCell" owner:self options:nil]; 
     for(id oneObject in xib){ 
      if([oneObject isKindOfClass:[HomeCell class]]){ 
       cell = (HomeCell *) oneObject; 
      } 
     } 
    } 

    //Get object at index data 
    HomeObjectCell *tempObject = [self.dataForCell objectAtIndex:indexPath.row]; 

    NSLog(@"Title : %@",tempObject.title); // The tempObject.title return a NSString example 

    cell.titleCell.text = tempObject.title; // <-- ERROR ! 

當我運行應用程序,我得到:

[UITableViewCell的titleCell]:無法識別的選擇發送到實例0x6e61890

任何想法?

回答

7

你絕對相信:

1)..類 「HomeCell」 爲表單元格命名是否正確?選擇單元格,選擇「身份檢查器」 - >「自定義類別」部分,然後看看

2)..引用與每個標籤/ UI圖像連接的插座?嘗試再次選擇您的單元格,選擇「連接檢查器」並查看

+1

謝謝你的回答!我解決了我的問題,我刪除了我的課程,並創建了一個新的UITableViewCell ...但我認爲我有一個命名衝突.. – 2012-07-19 15:50:35

+0

這也是一種確保事情是正確的方法。隨時upvote我的答案,並關閉這種情況下:) – 2012-07-22 08:44:43

0

在描述中你提到HomeCell有一個名爲titleLable的成員。

在你已經使用了cell.titleCell.text的代碼中。

所以,我認爲你應該使用cell.titleLabel.text而不是cell.titleCell。崩潰消息也暗示了與HomeCell中存在cell.titleCell無關的同一事物。

+0

謝謝您的回答。這是一個磁帶錯誤,我有一個titleCell而不是一個titleLabel!我編輯了描述... 我的HomeCell.h看起來像這樣:@interface HomeCell:UITableViewCell @property(weak,nonatomic)IBOutlet UIImageView * imageCell; @屬性(弱,非原子)IBOutlet UILabel * titleCell; @屬性(弱,非原子)IBOutlet UILabel * descriptionCell; @ end' – 2012-07-19 08:39:02

+0

檢查..您是否在HomeCell.m文件中綜合了titleCell屬性。 – Apurv 2012-07-19 08:42:56

+0

是的! '@synthesize imageCell; @synthesize titleCell; @synthesize descriptionCell;' – 2012-07-19 08:43:46

0

檢查xib文件中的文件所有者是否是Class HomeCell。

相關問題