2009-11-05 6 views
0

J'ai une plist avec des catégories:simple liste des sous catégorie

<array> 
<dict> 
    <key>part</key> 
    <string>up</string> 
    <key>house</key> 
    <array> 
     <dict> 
      <key>name</key> 
      <string>name1</string> 
      <key>theme</key> 
      <string>theme1</string> 
      <key>image</key> 
      <string>image1.png</string> 
     </dict> 
    </array> 
</dict> 
<dict> 
    <key>part</key> 
    <string>down</string> 
    <key>house</key> 
    <array> 
     <dict> 
      <key>name</key> 
      <string>name2</string> 
      <key>theme</key> 
      <string>theme4</string> 
      <key>image</key> 
      <string>image2.png</string> 
     </dict> 
     <dict> 
      <key>name</key> 
      <string>name3</string> 
      <key>theme</key> 
      <string>theme2</string> 
      <key>image</key> 
      <string>image3.png</string> 
     </dict> 
    </array> 
</dict> 

Mais je voudrais aussi un tableau avec seulement la liste de tous les noms. J'ai essayé NSArray* allSecretsWithDuplicates = [data valueForKeyPath:@"part.name"]; Le problème est qu'il retourne un tableau de dictionnaires.

Répondre

1

Vous n'avez qu'à parcourir la structure vous-même - écrivez une méthode qui accepte un dictionnaire, obtient des valeurs pour toutes les clés et quand elle trouve un tableau, elle s'appelle à nouveau pour chaque dictionnaire du tableau. Quand elle rencontre une clé nommée "name", stockez la valeur dans un tableau mutable local de classe, ou un tableau mutable que vous transmettez comme vous vous appelez.

Questions connexes