2010-10-21 20 views
0

J'ai un pList modifiable avec un dictionnaire de chaînes au format:De pList (dictionnaire) à Tableview

21-10-2010 -> @"item1" 
20-10-2010 -> @"item2" 
19-10-2010 -> @"item3" 
18-10-2010 -> @"item4" 
17-10-2010 -> @"item5" 
ect... 

donc avec des dates en StringFormat que les clés et les chaînes avec des informations différentes en tant que valeur. La longueur du dictionnaire peut devenir jusqu'à 200 touches. Et les clés ne viennent pas nécessairement dans l'ordre, et il pourrait y avoir des dates manquantes. Je souhaite afficher les clés et leurs valeurs dans une vue de table avec UITableViewCellStyleValue2. En ce moment, je les mettre dans le tableview en écrivant toutes les clés d'une NSMutableAray globale au démarrage:

keysArray = [myDictionary allKeys]; 

puis dans la méthode tableview, je les mettre dans l'aide indexPath normale index le tableau:

cell.textLabel.text = [keysArray objectAtIndex:indexPath]; 
cell.detailTextLabel.text = [myDictionary objectForKey: [keysArray objectAtIndex:indexPath]]; 

Ceci fonctionne, mais les dates ne sont pas en règle avec la date la plus élevée en premier. C'est parce que la fonction 'allKeys' retourne les touches dans un ordre aléatoire (aussi il n'y a pas d'ordre dans le dictionnaire). L'ensemble de la méthode pour parcourir un tableau global et renvoyer cette valeur comme clé d'un autre dictionnaire, chargé à partir d'un fichier pList externe, est vraiment compliqué et difficile. Donc, je cherche soit un moyen de trier un NSMutableArray par date, ou une meilleure façon d'implémenter ce que je veux.

Merci d'avoir écouté, John.

Répondre

0

Vous pouvez créer un tableau trié par date. Vous allez indexer ce tableau indexPath.row pour demander la valeur de l'élément.

Pour trier un tableau, vous pouvez utiliser:

-sortedArrayUsingComparator: 

[array sortedArrayUsingComparator:^(id obj1, id obj2) { 
    // Your comparaison 
}]; 

voir ce guide for block usage

+0

Cette réponse m'a mis dans la bonne direction. J'ai fini par le faire avec un comparateur standard après avoir lu dessus. –