2011-11-26 17 views
5

Eventuali duplicati:
How to display an array in reverse order in objective CCome invertire i dati in NSMutableArray?

Ho un NSMutableArray e questo array contiene informazioni piacevolmente in UITableView. ma voglio prima visualizzare le informazioni più recenti su UITableView. In questo momento le prime informazioni arrivano prima in UITableView. Il mio codice è il seguente:

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

allora come posso invertire l'informazioni in NSMutableArray?

risposta

13

Che ne dici di enumerare semplicemente il contenuto di entries nell'ordine inverso?

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

Se si vuole solo prendere un array e creare una matrice invertita, si può fare questo:

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

Naturalmente se si davvero bisogno di un array invertito rispetto all'originale, basta riempire un secondo array mutabile mentre si annulla l'inverso. – NJones

+0

grazie amico funziona benissimo – iPhone

7

si può provare come questo senso:

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

unica soluzione che ho trovato che funziona per nsmutablearray. Grazie! – denikov