我在使用给定谓词获取所有核心数据实体时遇到问题。我的模型看起来像这样。 Player
与Weapon
有一对多的关系,Player
与Metadata
有一对一的关系
我想列出属于Weapons
Player
属性selected
设置为true的所有Metadata
。
我使用这个谓词
[NSPredicate predicateWithFormat:@"ALL player.metadata.selected == %@", @YES];
但是我收到了错误
The left hand side for an ALL or ANY operator must be either an NSArray or an NSSet.'
我做错了什么?
欢呼声, 扬
答案 0 :(得分:0)
你应该改革你的查询。 “ ALL ”和“ ANY ”关键字应与多个关系一起使用。你有从玩家到武器的一对多关系。但是,如果你颠倒关系,你会发现这种关系是多对一的。所以,每个武器只有一个玩家。
Player <---->> Weapon
Weapon <<---> Player
所以,如果你改变你的谓词,那么它应该可以正常工作,
[NSPredicate predicateWithFormat:@"player.metadata.selected == %@", @YES];