Nsarray 如何使用谓词筛选此数组?

Nsarray 如何使用谓词筛选此数组?,nsarray,nspredicate,nsset,Nsarray,Nspredicate,Nsset,我有一个名为media_item的对象,它有一组与其相关的属性,但其中一个属性是一组字符串国家。我想做的是得到一组(唯一列表)的所有媒体项目的所有可用国家。举个例子,我有两个物体目标1.国家[美国、gbr、spa]和目标2.国家[美国、中国、法国]。我想做的是创建另一组这些对象,并将它们显示给用户。因此结果应该是newArray[us、gbr、spa、chi、fre]我尝试使用NSPredicate,但我想不出这里的格式字符串是否有效 NSMutableArray *all_media_item

我有一个名为media_item的对象,它有一组与其相关的属性,但其中一个属性是一组字符串国家。我想做的是得到一组(唯一列表)的所有媒体项目的所有可用国家。举个例子,我有两个物体<代码>目标1.国家[美国、gbr、spa]和
目标2.国家[美国、中国、法国]
。我想做的是创建另一组这些对象,并将它们显示给用户。因此结果应该是
newArray[us、gbr、spa、chi、fre]
我尝试使用NSPredicate,但我想不出这里的格式字符串是否有效

NSMutableArray *all_media_items = [[[[NSMutableArray arrayWithArray:_presentations]arrayByAddingObjectsFromArray:_videos]arrayByAddingObjectsFromArray:_brochures]mutableCopy];
NSSet *all_available_countries_set = [[NSSet setWithArray:all_media_items]filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"self.countries"]];

在这种情况下,self将被视为媒体对象,对吗?然后点存取器说查看数组的所有索引,如果它们不是重复的,则将它们放入新的arrray中。看起来不错,但我想不出来。有什么想法吗?

我想出了不用NSPRedicate这样做的办法

NSMutableArray *all_media_items = [[[_presentations arrayByAddingObjectsFromArray:_brochures]arrayByAddingObjectsFromArray:_videos]mutableCopy];
NSMutableSet *all_countries = [NSMutableSet set];
[all_media_items enumerateObjectsUsingBlock:^(UFPMediaObject *media_object, NSUInteger idx, BOOL *stop) {
    [media_object.countries enumerateObjectsUsingBlock:^(NSString* country, BOOL *stop) {
        [all_countries addObject:country];
    }];
}];
这很好,但我想知道如何使用NSPRedicate