2011-12-13 3 views
1

heightForRowAtIndexPathデリゲートメソッドの[tableView cellForRowAtIndexPath:indexPath]にアクセスしようとするとアプリケーションがクラッシュします。heightForRowAtIndexPathデリゲートメソッドのTableViewCellにアクセスするとアプリケーションがクラッシュする

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if ([tableView cellForRowAtIndexPath:indexPath] someBOOLProperty]) { 
     return kSomeHeight; 
    } 

    return kDefaultHeight; 
} 

答えて

4
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

上記のメソッドが呼び出された時点でtableViewCellオブジェクトがありません。

私は上記の代理人内の[tableView cellForRowAtIndexPath:indexPath]を使用すると正しくないと思います。

+1

はい、正しいものを入力してください。 – rishi

1

-cellForRowAtIndexPath:は、デリゲートの-tableView:heightForRowAtIndexPath:メソッドを呼び出しますので、あなたのアプリがクラッシュするループを持っています。 -cellForRowAtIndexPathでセルをフェッチすることに依存しない方法で、indexPathsをsomeBOOLProperty値にマップする方法を見つける必要があります。

1

Ali3nによると、テーブルの内容を使用するのではなく、セルの高さを判断するために、テーブルが使用しているデータセットを使用する必要があると思います。

関連する問題