2011-01-31 9 views
5

मेरे पास एक तालिका दृश्य है, जिसका एक डेटा से स्रोत स्रोत है जिसमें लोगों के नाम शामिल हैं।तालिका दृश्य को कनवर्ट करने के लिए अनुभाग

अब लोगों को ढूंढना आसान बनाने के लिए, मैं तालिका दृश्य को विभाजित करना चाहता हूं ताकि उसके पास एड्रेस बुक एप की तरह दाईं तरफ अक्षर ए-जेड हो।

लेकिन मेरे वर्तमान सरणी में केवल NSStrings का संग्रह शामिल है। मैं उन्हें कैसे विभाजित करूं ताकि उन्हें नामों के पहले अक्षर से समूहीकृत किया जा सके? क्या ऐसा करने का कोई सुविधाजनक तरीका है?

संपादित करें: अगर कोई मेरा अंतिम कोड में रुचि है:

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

तो फिर तुम पहले अक्षर अगर पता लगाना चाहिए शब्द और

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

फिर

का उपयोग करके तालिका अनुभाग में अपने अनुभागों को भरने का आपका काम है
संबंधित मुद्दे