2011-01-31 5 views
5

人の名前を含む配列のデータソースを持つテーブルビューがあります。テーブルビューにセクションがあるように変換する

人々を見つけやすくするために、私はアドレスブックアプリのように、右側に文字A-Zがあるようにテーブルビューを分割します。

しかし、私の現在の配列は、NSStringsのコレクションを含んでいます。名前の最初の文字でグループ分けされるように分割するにはどうすればよいですか?それを行う便利な方法はありますか?

EDIT:

NSMutableArray *arrayChars = [[NSMutableArray alloc] init]; 

for (char i = 'A'; i <= 'Z' ; i++) { 
    NSMutableDictionary *characterDict = [[NSMutableDictionary alloc]init]; 
    NSMutableArray *tempArray = [[NSMutableArray alloc] init]; 

    for (int k = 0; k < [myList count]; k++) { 

     NSString *currentName = [[friends objectAtIndex:k] objectForKey:@"name"]; 
     char heading = [currentName characterAtIndex:0]; 
     heading = toupper(heading); 

     if (heading == i) { 
      [tempArray addObject:[friends objectAtIndex:k]]; 
     } 
    } 
    [characterDict setObject:tempArray forKey:@"rowValues"]; 
    [characterDict setObject:[NSString stringWithFormat:@"%c",i] forKey:@"headerTitle"]; 
    [arrayChars addObject:characterDict]; 

    [characterDict release]; 
    [tempArray release]; 
} 

私が持っているだろう、関数の終わりに:誰もが私の最終的なコードに興味を持っていた場合

arrayChars [0] = dictionary(headerTitle = 'A', rowValues = {"adam", "alice", etc}) 
arrayChars[1] = dictionary(headerTitle = 'B', rowValues = {"Bob", etc}) 

は、あなたの助けのためのみんなありがとう!

答えて

2

あなたは次にあなたがあれば最初の文字を見つける必要があり、それらを並べ替えるために辞書を使用するので、すべてのソートしたい文字や辞書

NSArray *names = @[@"javier",@"juan", @"pedro", @"juan", @"diego"]; 
NSArray *letters = @[@"j", @"p", @"d"]; 
NSMutableArray *objects = [[NSMutableArray alloc] init]; 

for (NSInteger i = 0; i < [letters count]; ++i) 
{ 
    [objects addObject:[[NSMutableArray alloc] init]]; 
} 

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjects:objects forKeys:letters]; 

を初期化するためにはnilオブジェクトの配列を持つ配列を作成することができます言葉とは

for (NSString *name in names) { 
    NSString *firstLetter = [name substringToIndex:1]; 

    for (NSString *letter in letters) { 
     if ([firstLetter isEqualToString:letter]) { 
      NSMutableArray *currentObjects = [dictionary objectForKey:letter]; 
      [currentObjects addObject:name]; 
     } 
    } 

} 

は、あなたが直接辞書に印刷することができますを確認するには辞書に対応するキーにその単語を入れて

NSLog(@"%@", dictionary); 

次に、辞書を使用してテーブルビューにセクションを入力する作業は

です
関連する問題