如何使用NSPredicate返回整个集/数组?

时间:2010-03-29 03:41:30

标签: iphone cocoa cocoa-touch

我正在构建carArray并希望使用NSPredicate有条件地过滤内容,如下所示:

NSPredicate *pred;
switch (carType) {
  case FreeCar:
    pred = [NSPredicate predicateWithFormat:@"premium = NO"];
    break;
  case PremiumCar:
    pred = [NSPredicate predicateWithFormat:@"premium = YES"];
    break;
  default:
    pred = [NSPredicate predicateWithFormat:@"SOME PREDICATE THAT RETURNS EVERYTHING"];
    break;
}
self.carArray = [aCarArrayIGotFromSomewhere filteredArrayUsingPredicate:pred];

我的问题是,我作为SOME PREDICATE THAT RETURNS EVERYTHING存根的值的正确语法是什么,它返回数组/集合中的所有实例?

2 个答案:

答案 0 :(得分:9)

返回给定数组/集的所有内容:

夫特:

NSPredicate(value: true)

例如:

let array : NSArray = ["a", "b", "c", "d", "e"] let predicate = NSPredicate(value: true) array.filteredArrayUsingPredicate(predicate)

的产率:

["a", "b", "c", "d", "e"]

要排除给定数组/集的所有内容:

夫特:

NSPredicate(value: false)

例如:

let array : NSArray = ["a", "b", "c", "d", "e"] let predicate = NSPredicate(value: false) array.filteredArrayUsingPredicate(predicate)

的产率:

[]

答案 1 :(得分:3)

对于始终为true或始终为false,您可以使用[NSPredicate predicateWithValue:YES][NSPredicate predicateWithValue:NO]