1
深くネストされたデータ構造とNSPredicateを使用してそのデータをフィルタリングしようとしています。ネストされた辞書/配列にNSPredicateを使用する
<!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のにロード:
は、私はこのようなplistファイルを持っています。
NSPredicateでカテゴリ 'standard'にある配列images-ipadの要素を取得したいとします。私はこれが可能だと思いますが、私はそれを達成することができず、ドキュメントはネストされたデータ構造をカバーしていないようです。
NSPredicate *getcat = [NSPredicate predicateWithFormat:@"ANY images-ipad.categories == 'holiday'"];
NSArray *res = [[dict objectForKey:@"images-ipad"] filteredArrayUsingPredicate:getcat];
をそれは私がStackOverflowのためにもたらした、任意の要素を返しません:
だから、私はこれを試してみました。前もって感謝します。