Базовый предикат данных Невозможно проанализировать строку формата

Я пытаюсь получить набор NSManagedObjects, которые имеют определенные отношения с другими объектами.

Итак, у меня есть 4 управляемых объекта: UserPick, Game, Group, User. UserPick имеет однозначное отношение к Game, Group, User по отдельности. Мне нужно найти все UserPick, у которых есть определенные Game, Group и User, но я не могу правильно структурировать предикат:

Я пробовал:

[NSPredicate predicateWithFormat:@"%K = %@, %K = %@, %K = %@",
UserPickRelationships.game, game,
UserPickRelationships.group, group,
UserPickRelationships.user, user]

а также:

[NSPredicate predicateWithFormat:@"%K = %@, %K = %@, %K = %@",
UserPickRelationships.game, game.objectID,
UserPickRelationships.group, group.objectID,
UserPickRelationships.user, user.objectID]

наконец:

[NSPredicate predicateWithFormat:@"%K.%K = %@, %K.%K = %@, %K.%K = %@",
UserPickRelationships.game, @"objectID", game.objectID,
UserPickRelationships.group, @"objectID", group.objectID,
UserPickRelationships.user, @"objectID", user.objectID]

Я пробовал использовать %@ и %K во всех мыслимых комбинациях. Все, что я когда-либо возвращаю, это: NSPredicate cannot parse format string. Как я могу это сделать?


person Aaron Hayman    schedule 27.05.2014    source источник


Ответы (1)


Возможно, вы захотите объединить условия с помощью «И»:

[NSPredicate predicateWithFormat:@"%K = %@ AND %K = %@ AND %K = %@",
UserPickRelationships.game, game,
UserPickRelationships.group, group,
UserPickRelationships.user, user]

(при условии, что UserPickRelationships.game оценивается как строка "game").

person Martin R    schedule 27.05.2014
comment
Господи, это была глупая ошибка. Спасибо. Думаю, теперь я пойду возьму еще чашечку кофе... - person Aaron Hayman; 27.05.2014