获取NSArray中相等的自定义类属性的数量

时间:2015-04-05 20:30:56

标签: ios objective-c nsarray nspredicate

我有NSArray个包含两个属性的简单自定义类CustomClass的对象:

@interface CustomClass : NSObject

@property (nonatomic) NSString *term;
@property (nonatomic) NSString *tag;

@end

我的目标是找出阵列中对象中使用最多的标记。

据我所知,因此我需要分组所有对象的字符串值为标记计数它们和顺序计数的结果。

最好的方法是什么?可以使用NSPredicatefilteredArrayUsingPredicate完成吗?

1 个答案:

答案 0 :(得分:3)

NSCountedSet* countedSet = [NSCountedSet setWithArray:[yourArray valueForKey:@"tag"]];
NSUInteger highestCount = 0;
NSString* mostCommonTag;
for (NSString* tag in countedSet)
{
    NSUInteger count = [countedSet countForObject:tag];
    if (count > highestCount)
    {
        highestCount = count;
        mostCommonTag = tag;
    }
}

如果多个标签共享最高计数,则上述逻辑将随机选择一个。您可以根据需要进行调整。