Pour afficher les clés/valeurs d'un NSMutableDictionary de manière séquentielle (dans une tableview), je dois y accéder par index. Si l'accès par index pouvait donner la clé à cet index, je pourrais obtenir la valeur. Y a-t-il un moyen de faire cela ou une technique différente?Accès aux objets dans NSMutableDictionary par index
Répondre
Vous pouvez obtenir un NSArray contenant les clés de l'objet en utilisant le méthode allKeys. Vous pouvez ensuite examiner cela par index. Notez que l'ordre dans lequel les clés apparaissent dans le tableau est inconnu. Exemple:
NSMutableDictionary *dict;
/* Create the dictionary. */
NSArray *keys = [dict allKeys];
id aKey = [keys objectAtIndex:0];
id anObject = [dict objectForKey:aKey];
EDIT: En fait, si je comprends ce que vous essayez de faire ce que vous voulez est facile à faire en utilisant l'énumération rapide, par exemple:
NSMutableDictionary *dict;
/* Put stuff in dictionary. */
for (id key in dict) {
id anObject = [dict objectForKey:key];
/* Do something with anObject. */
}
EDIT: Correction d'une faute a souligné par Marco.
"allkeys" est "allKeys" – Mark
Dans 'cellForRowAtIndexPath' dans une vue de table qui pourrait être: 'NSArray * keys = [colors allKeys]; NSString * key = [clés objectAtIndex: indexPath.row]; cell = [tv dequeueReusableCellWithIdentifier: @ "CellColour" forIndexPath: chemin_index]; cell.textLabel.text = [colors objectForKey: key]; cell.backgroundColor = [self colorFromHexString: key]; ' –
vous pouvez obtenir un tableau de toutes les clés avec la méthode allKeys
du dictionnaire; et alors vous pouvez accéder au tableau par index. Cependant, un dictionnaire n'a pas d'ordre inhérent, donc l'ordre des clés que vous obtenez avant et après une modification du dictionnaire peut être complètement différent.
- 1. Accès aux objets Json
- 2. Accès aux objets imbriqués dans Json
- 3. (Requête C++) Accès global aux objets instanciés
- 4. fermeture jQuery et accès aux objets propriété
- 5. Accès aux objets de classe de catalogue d'E/S
- 6. Accès aux objets génériques .NET à partir de VBA
- 7. Accès aux objets du noyau distant sous Windows
- 8. Accès aux associations dans Rails
- 9. Renommer des clés dans NSMutableDictionary
- 10. Accéder aux objets créés par ModelBinders dans ActionFilters
- 11. Objets SQL utilisant un index
- 12. Accès aux objets de l'utilisateur dans différents états (Ruby on Rails, authentification RESTful)
- 13. Accès aux informations d'autorisation dans web.config
- 14. Accès aux commandes ASP dans un datalist
- 15. Accès aux listes d'images
- 16. Accès aux propriétés du modèle dans Rails
- 17. accès aux paramètres POST
- 18. Accès aux partages réseau
- 19. L'observation des modifications de NSMutableDictionary
- 20. Développement iPhone - Accès aux icônes par défaut d'Apple
- 21. Accès aux styles par programme pour obtenir des valeurs
- 22. Accès aux valeurs d'entrée masquées éditées par JavaScript
- 23. Accès aux entités agrégées sans chargement paresseux
- 24. Relation entre CFMutableDictionary et NSMutableDictionary
- 25. xmlNode aux objets
- 26. iPhone: Accès aux objets de vue à partir d'un ViewController dans le code
- 27. Accès aux événements et aux membres dans la page maître
- 28. C#: Accès aux membres d'instance privée hérités par réflexion
- 29. Accès direct aux cellules TableLayoutPanel
- 30. Accès aux arguments non définis
Quand est-ce que suit: NSMutableDictionary * tmpDict = [[NSMutableDictionary alloc] init]; [tmpDict setObject: @ "CN-GSM" forKey: @ "Fournisseur:"]; [tmpDict setObject: @ "10010" forKey: @ "Numéro:"]; [tmpDict setObject: @ "Oui" forKey: @ "Libre:"]; NSLog (@ "% @", [tmpdict allKeys]); [version de tmpDict]; Pourquoi la sortie n'est pas triée par la valeur ajoutée à tmpDict? – ZYiOS