2012-01-31 8 views
0

以下のコードでは、各セルに個別のセル識別子を使用していますが、どれがうまくいきます。UITableView-iPhoneの各セルに個別のセル識別子を使用すると問題が発生する

-(UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSString *identifier =[NSString stringWithFormat:@"ID_%d",indexPath.row]; 
    UITableViewCell *cell = [self.tv dequeueReusableCellWithIdentifier:identifier]; 

    if(cell==nil) 
    { 
     UITableViewCell *cell = [self.tv dequeueReusableCellWithIdentifier:identifier]; 
     [email protected]"data"; 
    } 
    return cell; 

} 

以下のコードでは、パフォーマンス、メモリまたはその他の問題はありますか?

答えて

3

個々の識別子を使用すると、セルは再利用されません。各UITableViewCellは異なるでしょう。

cell == nilのコードでは、deque..を再度呼び出しています。 識別子を持つセルがない場合は、新しいUITableViewCellを割り当てる必要があります。

2

パフォーマンスの問題は疑いありません。セル識別子の全体的なポイントは、テーブルビューは、各行に対して新しいセルを作成(および格納)するのではなく、既存のセルを迅速に再利用できることです。

セルの識別子は、セルのタイプに固有でなければなりません。 3つの 'タイプ'のセルを持つテーブルビューをお持ちの場合は、3つのIDを使用してください。

関連する問題