2012-03-02 14 views
0

なぜコントローラー上のテーブルビューセルをカスタマイズしているときにSIGABRTエラーが発生するのか不思議でした。 Cellは、UITableViewCellクラスで作成され、すべてがリンクされています。 UITableViewControllerはrootControllerではなく、別のコントローラから離れたコントローラUITableViewControllerです。ので、RootView - > TableViewCont - >このTableViewCont。カスタムUITableViewCellを持つUITableViewController

エラーがcellForRowAtIndexPath機能である:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: 
    (NSIndexPath *)indexPath{ 
static NSString *CellIdentifier = @"CellTest"; 

CellTest *cell = (CellTest *) 
       [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    NSArray *topLevelObjects = [[NSBundle mainBundle] 
           loadNibNamed:@"CellTest" owner:self 
           options:nil];//**error is thrown here**// 
    for(id currentObject in topLevelObjects){ 
     if([currentObject isKindOfClass:[UITableViewCell class]]){ 
      cell = (CellTest *) currentObject; 
      break; 
     } 
    } 
} 

// Configure the cell... 
cell.cellTitle.text = @"Test"; 
cell.cellDescription.text = @"little detail"; 

return cell; 
} 

これは、GDBログ内のエラーです:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<DemoViews 0x6b16ce0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key cellDescription. 
+0

すべてが含まれていますか?プロジェクトをクリーニングしてみてください。私は私のアプリで同じコードを持っており、それは魅力のように働いています... – fbernardo

+0

それはすべてがきれいだと言います。それは、テーブルを持っているファイルがルートではなく、CellコードがちょうどUITableViewCellであるUITableViewControllerであるという違いを生じさせるでしょうか? UITableViewControllerの.xibに何かを追加する必要がありますか – Rob

+0

xibには何か変わったことがあります。 UITableViewCellの「カスタムクラス」は正しく設定されていますか?デフォルトでは 'UITableViewCell'ですが、おそらく' CellTest'が必要です。 – gregheo

答えて

2

私は同じ問題を持っていたと私はSIGABRTを取得しています理由を理解しませんでした。しかし、私は問題を解決しました:

  1. 先ず、あなたのセルのレイアウトを別のxibに置きます。理由を聞かないでください。xibに他のものがある場合は機能しません。
  2. recipe of Apple for creating custom cellsに従うことができます。
+0

これは働いた。サイトで言及されている別のxibに追加したいのは、空のユーザーインターフェイスxibだけです。また、私が理解している部分的に私のせいであるリンゴが明確に感じていないことの1つは、静的なNSStringがセルに与えたidであり、loadNibNameがxibファイルの名前であるということです。しかし、ファイルを作成するときに.mファイルに追加するときにnibNameを記述しないので、少し混乱しています。だから、私が気づいたいくつかのことが、他の人にとってはより簡単になります。 – Rob

+0

ええ、はい、私はこの1日前にもう一度1日を過ごしました。記事のすべての言葉に注意を払わなければなりません。あなたはうれしいです。 – MrTJ

+0

@ MrTJうわあ、このリンクが見つかりました。小さな質問:あなたが同じテーブルビューで3つの異なるカスタマイズされたセルを持っているなら、どうすればこのことができますか? (私はどのセルをfx:TVCell1、TVCell2&TVCell3に使用するか選択します) –

関連する問題