NSDictionary à l'intérieur de NSDictionary
Ok j'ai un .fichier plist,
Dans lequel j'ai un NSDictionary *StoredAddresses
,
À l'intérieur de StoredAddresses
, est une autre poignée de NSDictionary
Je sais que je peux utiliser,
if ([dictionaryOfAddresses objectForKey:@"StoredAddresses"])
Pour accéder au haut niveau NSDictionaries, mais comment puis-je rechercher pour les clés à l'intérieur de la stockées les adresses?
Vous devez vous connecter pour publier un commentaire.
Bien, si je lis correctement, vous avez dictionnaires dans les dictionnaires. Cela fonctionne comme tout autre objet:
Vous pouvez combiner les appels si vous voulez:
Vous pouvez utiliser le
NSKeyValueCoding
méthodevalueForKeyPath:
pour accéder aux propriétés des objets imbriqués. Par exemple, pour la suite des dictionnaires......vous pouvez accéder aux valeurs de la imbriquée
home
dictionnaire comme suit:Cela fonctionne de la même pour le plus profondément imbriqués chemins d'accès, par exemple:
Noter que cela fonctionne indépendamment du fait que les objets sont des instances de
NSDictionary
ou toute classe personnalisée qui descend deNSObject
, à condition que la classe personnalisée a des propriétés de l'instance ou de variables dont les noms correspondent à des touches.Ainsi, par exemple, au lieu d'utiliser un
NSDictionary
pour l'adresse du domicile, il est possible de substituer une instance d'une coutumeAddress
classe qui ont déclaré des propriétés, des méthodes de lecture, ou variables d'instance nommée rue et ville (ou variables d'instance nommée _street et _city), et encore y accéder de la même manière.Et si l'objet contenant la cible de la propriété est sujette au changement (par exemple une instance de
NSMutableDictionary
), vous pouvez même modifier la valeur à l'aide du même mécanisme, par exemple:Un autre moyen d'obtenir subdictionaries qui rend bien le code est le suivant notation abrégée:
Ce sera le retour de la gamme de clés à l'intérieur StoredAddresses
alors vous pouvez imprimer la yourArray et de voir les touches, puis après en sachant les touches, vous pouvez accéder à l'aide, soit
ou