2010-09-02 8 views
0

Je tire des données à partir de xml est-ce possible de leur montrer le groupe par ??Afficher le tableau afficher les données regroupées par sur iphone

je n'ai pas plsit en ce moment je montre des données tout aussi simple maintenant je veux groupe par ce qui devrait être l'approche/concept ??

je fait quelque chose comme ça, mais pas de chance

d o je dois faire un certain tri ?? comme en utilisant NSSortDescriptor ?? ****

si oui alors où viewdidload ou cellforrowatindxpath??

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


    **Book *aBook = [appDelegate.books objectAtIndex:indexPath.row];** 

/// comment les organiser en groupe par ??

J'ai essayé

NSString *keys =aBook.name; 
NSMutableDictionary *dicta = [NSMutableDictionary dictionary]; 
    [dicta setObject:keys forKey:@"message"]; 


    NSSortDescriptor *sortNameDescriptor = 
    [[[NSSortDescriptor alloc] 
     initWithKey:@"message" ascending:YES] 
    autorelease]; 

mais je ne peux pas les afficher dans l'ordre alphabétique :(

} 

Merci

+0

Il y a ces choses appelées sections de table. Peut-être que vous devriez les regarder et les exemples de TableViewSuite. – Nick

+0

merci mais je n'ai aucune idée de la façon de procéder, devrais-je créer dic et ensuite afficher ?? où devrais-je ajouter des éléments à dic ?? pouvez-vous élaborer – prajakta

Répondre

0

La plupart du temps, je crée un NSDictionary où chaque entrée a une clé contenant la sectionName et la valeur est une liste de tout ce qui est utilisé pour remplir la cellule Si vous l'avez:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
return [[data allkeys] count]; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSString* key = [[data allkeys] objectAtIndex:section]; 
    return [[data objectForKey:key] count]; 
} 

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
    return [[data allkeys] objectAtIndex:section]; //If key is NSString* of course 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    ...//classical code the retrieve a valid cell 
    NSString* key = [[data allKeys] objectAtIndex:indexPath.section]; 
    NSObject* obj = [[data objectForKey:key] objectAtIndex:indexPath.row]; 
    ...//Setup the cell with obj properties. 
} 

Vous pouvez optimiser ce code mais cela fonctionne très bien pour une petite quantité de données.

si vous voulez une du groupe ou de la valeur à trier, vous pouvez utiliser NSSortDescriptors comme ceci pour exemple (trier un tableau de chaînes)

NSSortDescriptor* sortAsc = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES]; 
[anyArrayOfNSString sortUsingDescriptors:[NSArray arrayWithObject:sortAsc]];   
[sortAsc release]; 

bien sûr je vous conseille d'éviter le tri chaque fois que vous besoin d'une valeur. Faites le tri une fois lorsque les données deviennent disponibles.

+0

vous voulez dire de cette façon je peux les organiser dans l'ordre alphabétique ??? – prajakta

+0

@arutema: voir après modification ci-dessus. – VdesmedT

+0

ok 1 doute .. qu'est-ce que numéroNuméros ?? (un tableau) et initWithKey: devrait être nul ou ma clé ?? voir mon code modifié ci-dessus – prajakta

Questions connexes