0

我正在尝试获取一组NSManagedObjects与其他对象具有特定关系的对象。

所以我有 4 个托管对象:UserPick, Game, Group, User. GameUserPick 与, Group,具有一对一的关系User。我需要找到所有UserPick具有特定Game,Group和的 s 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]

我已经尝试在每一种可以想象的组合中使用%@and 。%K我得到的只是:NSPredicate cannot parse format string。我怎样才能做到这一点?

4

1 回答 1

4

您可能希望将条件与“AND”结合起来:

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

(假设UserPickRelationships.game计算结果为 string "game")。

于 2014-05-27T16:11:43.090 回答