2011-11-26 9 views
5

Duplicar posible:
How to display an array in reverse order in objective CCómo invertir los datos en NSMutableArray?

tengo una NSMutableArray y esta matriz contiene información muy bien en UITableView. pero quiero mostrar la información más reciente primero en UITableView. En este momento, la información más antigua aparece primero en UITableView. Mi código es el siguiente:

NSMutableArray *entries = [NSMutableArray array]; 
[self parseFeed:doc.rootElement entries:entries]; 
for (RSSEntry *entry in entries) { 
    [allEntries insertObject:entry atIndex:0]; //insertIdx]; 
    [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationRight]; 
} 

entonces ¿Cómo puedo revertir la información en NSMutableArray?

Respuesta

13

¿Qué le parece simplemente enumerar los contenidos de entries en orden inverso?

for (RSSEntry *entry in [entries reverseObjectEnumerator]) { 
    ... 
} 

Si lo que desea es tener una matriz y crear una matriz inversa, se puede hacer esto:

NSArray *reversedEntries = [[entries reverseObjectEnumerator] allObjects]; 
+1

Por supuesto, si realmente necesita una matriz invertida desde el original, simplemente complete una segunda matriz mutable mientras enumera de forma inversa. – NJones

+0

Gracias amigo funciona bien – iPhone

7

Usted puede tratar igual que de esta manera:

for (int k = [originalArray count] - 1; k >= 0; k--) { 
    [reverseArray addObject:[originalArray objectAtIndex:k]]; 
} 
+0

única solución que encontré que funciona para nsmutablearray. ¡Gracias! – denikov

Cuestiones relacionadas