我有一个类别的plist:
<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>
但是我想要一个只包含所有名称列表的数组。
我试过NSArray* allSecretsWithDuplicates = [data valueForKeyPath:@"part.name"];
问题是它返回一组字典。
答案 0 :(得分:1)
你只需要自己走一下这个结构 - 写一个接受字典的方法,获取所有键的值,当它发现一个数组再次为数组中的每个字典调用自己。当遇到名为“name”的键时,它会将值存储到类本地可变数组中,或者在您自己调用时传递的可变数组。