3

そのため、以下の if ステートメントを入力すると、EXC Bad Access エラーが発生します。ちょっとイライラするのは、indexPath と tableView が正しい場所を指していることを確認したことです。また、まったく同じ if ステートメントが、同じ実装ファイル内のコードの他の場所でエラーなしで使用されています。

助けていただければ幸いです。

-(CGFloat)tableView:(UITableView *)tableView 
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if([indexPath row] == ([tableView numberOfRowsInSection:[indexPath section]]-1))
    {
        return 44.0;
    } else {
        return 60.0;
    }                       
}
4

6 に答える 6

0
if([indexPath row] == ([tableView numberOfRowsInSection:[indexPath section]-1]))
    {
        return 44.0;
    } else {
        return 60.0;
    }            
于 2012-06-09T05:28:02.523 に答える
0

あなたのロジックによれば、[indexPath section]-10番目のセクションである最初のセクションの行数は-1でなければなりません

于 2012-06-09T05:28:12.883 に答える
0

要件を解決するためのより良い解決策は、テーブルビューにセクション内の行数を尋ねるのではなく、データソースに行数を尋ねることです。

たとえば、データソースが配列の場合は、array.count を確認します (もちろん、セクションがあるため、他のデータソースがありますが、要点はわかります)。

于 2012-06-09T06:21:10.670 に答える
0

[indexPath section]-1インデックス「0」のセクションの場合、アクセスが悪くなります。このステートメントから -1 を削除します。

于 2012-06-09T05:54:25.317 に答える