J'essaie d'utiliser une structure de données profondément imbriquée et NSPredicate pour filtrer ces données.en utilisant NSPredicate sur un dictionnaire/tableau imbriqué
Je dispose d'un fichier plist comme ceci:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>images-ipad</key>
<array>
<dict>
<key>categories</key>
<array>
<string>standard</string>
</array>
<key>name</key>
<string>Default</string>
<key>plist</key>
<string>cardSheet.plist</string>
<key>png</key>
<string>cardSheet.png</string>
</dict>
<dict>
<key>categories</key>
<array>
<string>standard</string>
</array>
<key>name</key>
<string>Optional</string>
<key>plist</key>
<string>cardSheet.plist</string>
<key>png</key>
<string>cardSheet.png</string>
</dict>
<dict>
<key>categories</key>
<array>
<string>christmas</string>
<string>holiday</string>
<string>standard</string>
</array>
<key>name</key>
<string>christmas</string>
<key>plist</key>
<string>cardSheet.plist</string>
<key>png</key>
<string>cardSheet.png</string>
</dict>
</array>
</dict>
</plist>
qui je charge dans un NSDictionary via dictionWithContentsOfFile. Je veux ensuite obtenir les éléments du tableau images-ipad qui sont dans la catégorie 'standard' via NSPredicate. Je pense que c'est possible, mais je n'ai pas réussi à l'accomplir, et les documents ne semblent pas couvrir les structures de données imbriquées.
Alors, je l'ai essayé ceci:
NSPredicate *getcat = [NSPredicate predicateWithFormat:@"ANY images-ipad.categories == 'holiday'"];
NSArray *res = [[dict objectForKey:@"images-ipad"] filteredArrayUsingPredicate:getcat];
mais il ne retourne pas d'éléments qui me amène à Stackoverflow. Merci d'avance.