如何创建访问数组内对象属性的谓词

时间:2018-10-25 16:31:12

标签: objective-c predicate

假设我有一个NSArray of Person对象,这些对象由2个属性(name和age)组成。 为了理解它的工作原理,我想知道如何创建访问数组每个成员的谓词,并过滤一个年龄属性大于或等于30的所有对象。 我只是想不通:

  NSPredicate *predicate = [NSPredicate predicateWithFormat:@">= 30"];

    [persons filteredArrayUsingPredicate:predicate];
    NSLog(@"%@",persons)

我应该在predicateWithFormat上键入什么? 预先谢谢你!

1 个答案:

答案 0 :(得分:0)

两个问题:

  1. 谓词格式例如为key-operator-value

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age >= 30"];
    

    或带有占位符

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K >= %ld", @"age", 30];
    
  2. filteredArrayUsingPredicate返回一个新数组

    NSArray *filteredArray = [persons filteredArrayUsingPredicate:predicate];
    NSLog(@"%@", filteredArray)
    

有关更多信息,请阅读splitting list problem