как создать предикат, который обращается к свойству объекта внутри массива - PullRequest
0 голосов
/ 25 октября 2018

Предположим, у меня есть объекты NSArray of Person, которые состоят из 2 свойств (имя и возраст).Просто для понимания того, как это работает и на практике, я хотел бы знать, как создать предикат, который обращается к каждому члену массива и фильтрует все объекты со свойством age, которое больше или равно 30. Я просто не могупонять это:

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

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

Что я должен набрать на предикате с форматом?Заранее спасибо!

1 Ответ

0 голосов
/ 25 октября 2018

Два вопроса:

  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)
    

Для получения дополнительной информации читайте Синтаксис строки формата предиката

...