2011-06-22 14 views
-1

私はアルファベット順にセルの値を手配したいが、私は、セルを手配することができますどのようにアルファベット順(Xcodeの)

- (UITableViewCell *)tableView:(UITableView *)tableView  cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault   reuseIdentifier:CellIdentifier] autorelease]; 
    } 


    cell.textLabel.text = [[[map annotations] objectAtIndex:indexPath.row] title]; 

return cell; 
} 

に私が働いている値 コードを手配することができないのですアレンジする方法について説明します。 textLabel.text値はアルファベット順に、任意のヘルプは方法があまりにも遅れていることを事前

答えて

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

であなたに感謝

を理解されるであろう。メソッドが呼び出されるまでに、順序は既に決定されているはずです。

注釈を必要な順序に並べ替えるのはなぜですか。すなわち、[map annotations]によって返された配列を、テーブルビューの描画の前にソートする。

1

これを達成する簡単な手段は、多くのNSArrayソートオプションを使用して、テーブルセルで使用する前にマップ注釈NSArrayをソートすることです。 (例:sortedArrayUsingDescriptors:

詳細については、NSArray class referenceを参照してください。

の前にのようにしたい場合は、不必要なオーバーヘッドを減らすために、cellForRowAtIndexPathメソッドの内部ではなく内部で使用します。

+0

これはこれを行う方法ですか? [[[map annotations] title] sortedArrayUsingSelector:@セレクタ(localizedCaseInsensitiveCompare :)]; – jarus

+0

それは動作しません。 @middaparkaが記述するように配列をソートする必要があります。 – bbum

+0

@ middaparka cellforrowatindexpathの前にそれをやる方法を知らなかったけど、私はcellforrowatindexpathの中でそれをやり遂げることができました、それは働いていましたが、それはメモリエラーにつながります – jarus

関連する問題