2011-01-31 24 views
5

İnsanların adlarını içeren bir diziden Veri kaynağı olan bir tablo bir görünümü, sahip olması. Şimdi dönüştürme Tablo görünümü bölümleri

sadece Adres Defteri uygulaması gibi, sağ taraftaki harf A'dan Z'ye sahip olduğunu bu yüzden bölümüne tablo görünümü istiyorum, insanlar bulmak için kolaylaştırmak için.

Ama benim şimdiki dizi sadece NSStrings bir koleksiyon içerir. Onları, adların ilk harfi ile gruplandırılacak şekilde nasıl bölerim? Bunu yapmak için uygun bir yolu var mı?

DÜZENLEME: herkes benim son kod ilgilenen ise: Ben gerekecek işlevi sonunda

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}) 

Yardımlarınız için herkese teşekkürler!

cevap

2

Sen

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]; 

Sonra ilk harfi ise bulmalı Dictionary başlatmak için onları sıralamak, bu yüzden sıralamak istediğiniz tüm harfleri içeren bir dizi ve nil nesnelerle bir dizi oluşturmak için bir sözlük kullanabilirsiniz kelime ve

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]; 
     } 
    } 

} 

sözlüğü doğrudan yazdırabilirsiniz kontrol etmek sözlükte İlgili tuş içine bu kelimeyi koymak

NSLog(@"%@", dictionary); 

Sonra sözlüğü

kullanarak tableview Bölümlerinizi doldurmak için eseridir
İlgili konular