Obtenir NSDictionary clé de l'index?
Est-il possible d'obtenir une clé de dictionnaire par index?
Je suis en train d'utiliser un dictionnaire pour la source de données d'un sélecteur de vue et que vous voulez y accéder en suivant délégué méthode:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if (component == 0){
return [NSString stringWithFormat:@"%@",[myDict //how to get the key]];
}
EDIT--
myDict est quelque chose comme:
Point 1
- sub item 1
- sous la rubrique 2
Article 2
- sub item 1
- sous la rubrique 2
Je veux utiliser myDict comme source de données d'un sélecteur de vue qui dispose de 2 sections:
section 0 = myDict clés (Point 1, Point 2)
section 1 = correspondant myDict valeurs pour la section sélectionnée 0 ligne (sous le point 1, sous-alinéa 2)
Qu'entendez-vous par arriver dictionnaire clé de l'index? Comment élaborer davantage en montrant l'exemple ou plus de code?
Les dictionnaires n'ont pas un indice, vous pouvez utiliser le allKeys méthode pour obtenir un tableau de clés.
Lire la NSDictionary spec et de voir quelles sont les fonctions sont disponibles.
Les dictionnaires n'ont pas un indice, vous pouvez utiliser le allKeys méthode pour obtenir un tableau de clés.
Lire la NSDictionary spec et de voir quelles sont les fonctions sont disponibles.
OriginalL'auteur Sam Luther | 2014-05-14
Vous devez vous connecter pour publier un commentaire.
Depuis
NSDictionary
est un non ordonnée conteneur associatif, il a pas de concept de l'indexation. Ses touches sont commandés de manière arbitraire, et que l'ordre peut changer dans le futur.Vous pouvez obtenir un
NSArray
des clés du dictionnaire, et d'appliquer l'indexation:Cependant, ce schéma d'indexation serait rester cohérent qu'aussi longtemps que le dictionnaire reste inchangé: par exemple, si vous utilisez
NSMutableDictionary
, l'ajout d'une clé supplémentaire peut changer l'ordre des clés existantes. Cela conduit à de très difficile à déboguer des problèmes.Une meilleure approche serait de placer les éléments de votre sélecteur dans un ordre conteneur, tel qu'
NSArray
. Créer une classe spéciale pour le sélecteur d'éléments, par exemplecréer un
NSArray
de cesMyPickerItem
objets de votre dictionnaire, afin de la manière que vous voulez qu'ils apparaissent dans le sélecteur de vue (disons, par ordre alphabétique deitem1
, puis paritem2
) et l'utilisationNSArray
comme source de données pour votre sélecteur de vue:OriginalL'auteur dasblinkenlight
Cela vous donnera au hasard clés des commandes
OriginalL'auteur Hao
Pas, comme un dictionnaire n'est pas a l'ordre.
Vous aurez besoin de fournir un tableau de clés, ce qui vous donnera votre commande, en plus du dictionnaire.
NSMutableDictionary
. le nombre de fois que j'ai conduit moi-même fou parce que j'ai oublié de le faire...OriginalL'auteur trojanfoe
NSDictionary
est un non triées de la structure de données qui signifie que l'accès à un index n'a pas beaucoup de sens. Vous voulez probablement unNSArray
à la place. Toutefois, si votre dictionnaire est à l'aide deNSNumbers
que des clés, alors vous devriez pouvoir y accéder comme ça.OriginalL'auteur CrimsonChris