使用大于k的NSInteger属性过滤NSMutableArray中的对象

时间:2011-12-06 09:14:09

标签: objective-c filter nsmutablearray

我已经搜索过但所有问题都在谈论排序NSStrings。

我有一个带有对象(myvector)的NSMutableArray,其中有一个名为NSDecimalNumber的属性fitness

我想过滤属性适合度等于或大于'k'值的所有对象。

2 个答案:

答案 0 :(得分:3)

您必须使用NSPredicate。我只假设k的值为2.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"fitness>=2.0"];
NSArray *arr = [data filteredArrayUsingPredicate:predicate];

答案 1 :(得分:3)

根据您的情况添加Shanti的答案,您也可以执行类似

的操作
NSIndexSet* indexSet = [array indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
    return [[(YourObjectClass*)obj fitness] doubleValue] > k;
}];

NSArray* filteredArray = [array objectsAtIndexes:indexSet];

在某些情况下更灵活。