1
我試圖使用深度嵌套的數據結構和NSPredicate來過濾該數據。在嵌套字典/數組上使用NSPredicate
我有一個plist文件是這樣的:
<!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>
其中我加載到通過dictionWithContentsOfFile一個NSDictionary。
然後,我想通過NSPredicate獲取類別爲「標準」的數組圖像-ipad元素。我認爲這是可能的,但是我一直無法實現它,而且這些文檔似乎沒有涵蓋嵌套的數據結構。
所以,我已經試過這樣:
NSPredicate *getcat = [NSPredicate predicateWithFormat:@"ANY images-ipad.categories == 'holiday'"];
NSArray *res = [[dict objectForKey:@"images-ipad"] filteredArrayUsingPredicate:getcat];
,但它不返回任何元素,這是我帶來的StackOverflow。提前致謝。