2010-10-27 7 views
0

J'ai un tableau contenant des dictionnaires, et je veux montrer les valeurs dans une vue tabulaire en fonction du champ "nom" de chaque dictionnaire. Supposons que le nom commence par "a"; alors "b" et "c" sont dans différentes sections. Le nombre de sections correspond au champ "nom" des dictionnaires. Comment puis-je obtenir le nombre de lignes? Si quelqu'un sait, s'il vous plaît donner la solution.NSPredicate pour aider à compter les objets dans le tableau

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    //---get the letter in each section; e.g., A, B, C, etc.--- 
    NSString *alphabet = [subscribeIndexArray objectAtIndex:section]; 

    //---get all states beginning with the letter--- 

    //NSMutableArray *states =[[NSMutableArray alloc]init]; 
    NSArray *states; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet]; 

    for(NSDictionary *dict in subscribeViewArray1) 
    { 
     states =[[dict valueForKey:@"name"] filteredArrayUsingPredicate:predicate]; 
    } 

    //---return the number of states beginning with the letter--- 
    return [states count]; 
} 

Répondre

1

Vous devez avoir les noms d'état dans un tableau afin de les filtrer avec un prédicat.

Essayez ceci:

... 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet]; 
NSMutableArray *matchingStatesArray = [[NSMutableArray alloc] init]; 
for (NSDictionary *dict in subscribeViewArray1) { 
     //get the state names in an array 
    [matchingStatesArray addObject:[dict objectForKey:@"name"]]; 
    } 
    [matchingStatesArray filterUsingPredicate:predicate]; 

    return [[matchingStatesArray autorelease] count]; 
} 
+0

Je l'ai fait, mais je veux le dictionnaire tout vous separting le tableau avec une valeur de nom – parvind

Questions connexes