0

テーブルビューにカスタム セルを作成しました。UITableViewDelegate メソッドでカスタム セルを呼び出しました。

--(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

これは私のコードがどのように見えるかです:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

        static NSString *cellId = @"cellIdetifier";
        static NSString *cellId2 = @"cellId2";

        tableCell *customCell = [tableView dequeueReusableCellWithIdentifier:cellId2];
        if(customCell == nil){

            NSArray *customObjects = [[NSBundle mainBundle]loadNibNamed:@"tableCell" owner:self options:nil];
            for(id obj in customObjects){

                if([obj isKindOfClass:[tableCell class]]){

                    customCell = (tableCell *)customObjects;
                    break;
                }

            }


        }

        return customCell;

}

というエラーが表示されます

 creatingcustomcell[693:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM setTableViewStyle:]: unrecognized selector sent to instance 0x6d6c7f0'

助けてください、何が起こったのかわかりません。

4

2 に答える 2

1

このコードから、強制が行にあるかどうかを判断するのは困難です。

 customCell = (tableCell *)customObjects;

正しい。少なくとも、配列を強制するのは奇妙に見えます。

NSArray *customObjects = [[NSBundle mainBundle]loadNibNamed:@"tableCell" owner:self options:nil];

あなたにtableCell

つまり:

 customCell = (tableCell *)obj;

また、クラス名は大文字にするという推奨事項に従うこともできます

于 2012-08-08T22:50:14.997 に答える
0
 if([obj isKindOfClass:[tableCell class]]){
      customCell = (tableCell *)customObjects;
      break;
 }

セルを配列全体に設定しています

代わりにこれを行う

 for (int i=0; i < customObjects.count; i++) {

     if([customObjects objectAtIndex:i] isKindOfClass:[tableCell class]]){

          customCell = (tableCell *)[customObjects objectAtIndex:i];
          break;
     }
}
于 2012-08-08T23:45:45.733 に答える