Вы почти получили это, только немного.
Каждый User
имеет набор Devices
. Это означает, что когда вы вызываете [aUser valueForKeyPath:@"devices.category"]
, он даст вам коллекцию совокупности категорий устройств.
Другими словами, если у вашего пользователя есть 2 устройства, и они (соответственно) имеют category
«мобильных» и «настольных», то "devices.category"
вернет (mobile, desktop)
. Это векторное значение. Содержит несколько элементов.
Однако вы сравниваете это со скалярным значением (один элемент), @"mobile"
.
Я думаю, что вы хотите выбрать всех пользователей, у которых есть хотя бы одно устройство в категории «мобильные», верно? Если это так, то вам просто нужно использовать ключевое слово ANY
и сделать свой предикат таким образом:
[NSPredicate predicateWithFormat:@"ANY devices.category = %@", @"mobile"]
Для получения дополнительной информации об этих агрегатных функциях см. Руководство по программированию предикатов .