cheebowの日記

2009-12-21

UITableViewCellのCellIdentifierのつけ方

13:32

オライリーの「iPhone SDK アプリケーション開発ガイド」では、セルのIDをこんな感じで決めています。

NSString *CellIdentifier = [NSString stringWithFormat:@"%d:%d", 
                           [indexPath indexAtPosition:0],
                           [indexPath indexAtPosition:1]];  
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

テーブルのセルそのもののIDをつけている感じ。

でも、他の本を見ると

NSString *CellIdentifier = @"Cell";  
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

こんな感じですよね。

つまり、セルの種類によってIDを変える感じ。

前者だと、テーブルの行数分のセルを作ってしまって、ものすごく富豪的で無駄だと思うんですけど、どうなんでしょ?

paellapaella2009/12/21 21:45私も以前同じ疑問を持ちました。
試した結果、ご推察の通り前者はセルが再利用されることはなく、しかも毎回初期化されるので遅くなってしまいました。

後者が正しい処理ですね。
ちなみにほかにも間違えている本があるので、注意が必要です。

anonanon2010/12/16 11:04通常であればstaticな@"Cell"でいいんですが、ケースによってはレイアウトが崩壊することがあるそうです。
その解決策としてrowごとにCellIdentifierを振っているようですね。
http://ameblo.jp/cascket/entry-10479166426.html