У меня есть массив объектов, которые я хотел бы отфильтровать с помощью предиката, но я не смог выяснить синтаксис (или это невозможно).
Скажем, объект location и имеет свойства широта и долгота . У меня есть массив из них, который называется allLocations , и я хочу создать новый массив местоположений, где свойство широты больше 30.
При извлечении управляемых объектов вы можете просто использовать имя свойства, но не так с массивами:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"latitude > 30.0"];
не возвращает совпадений (несмотря на наличие большого количества объектов местоположения с широтами> 30,0.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.latitude > 30.0"];
тоже не годится, а
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"[SELF latitude] > 30.0"];
и
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"[location latitude] > 30.0"];
выбросить исключения.
Мне не повезло?