我一直试图解决这个问题但到目前为止没有任何成功。
我知道如何使用for循环来解决这个问题,但我想使用NSPredicate
来学习它我有以下NSArray of NSDictionaries
[ { "content"="content1", "path"="/usr/name/..." },
{ "content"="acontent2", "path"="/usr/name/..." },
{ "content"="content3", "path"="/usr/name/..." },
{ "content"="content14", "path"="/usr/name/..." } ]
我想为数组中的所有项返回“content”键的所有值的数组。即,返回应该是
[ "content1", "content2", "content3", "content4" ]
怎么做?
由于
答案 0 :(得分:3)
你可以这样做:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"content =[cd] %@", @"content1"];
NSArray * array = [YourArray filteredArrayUsingPredicate:pred];
这将过滤您的数组以显示content = content1的所有值。 但这是用于过滤数组但是你想要的输出:
[ "content1", "content2", "content3", "content4" ]
看起来更像是排序。
希望我向您解释NSPredictate是如何工作的。
答案 1 :(得分:2)
只需使用valueForKey:
NSArray *contentItems = [array valueForKey:@"content"];
返回一个数组,其中包含调用valueForKey的结果:在每个数组的对象上使用键 返回的数组包含返回nil的每个对象的NSNull元素。