NSPredicate 与关系
NSPredicate with relation
我在使用给定谓词获取所有核心数据实体时遇到问题。我的模型看起来像这样。 Player
与 Weapon
具有一对多关系,Player
与 Metadata
具有一对一关系
我想列出属于 Player
且 Metadata
的 selected
属性设置为 true 的所有 Weapons
。
我用这个谓词
[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.'
我做错了什么?
干杯,
一月
您应该修改您的查询。 'ALL' 和 'ANY' 关键字应该用于许多关系。从玩家到武器,你有一对多的关系。但是,如果你颠倒关系,你会看到关系是多对一的。所以,每个武器只有一个玩家。
Player <---->> Weapon
Weapon <<---> Player
因此,如果您像这样更改谓词,它应该可以正常工作,
[NSPredicate predicateWithFormat:@"player.metadata.selected == %@", @YES];
我在使用给定谓词获取所有核心数据实体时遇到问题。我的模型看起来像这样。 Player
与 Weapon
具有一对多关系,Player
与 Metadata
我想列出属于 Player
且 Metadata
的 selected
属性设置为 true 的所有 Weapons
。
我用这个谓词
[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.'
我做错了什么?
干杯, 一月
您应该修改您的查询。 'ALL' 和 'ANY' 关键字应该用于许多关系。从玩家到武器,你有一对多的关系。但是,如果你颠倒关系,你会看到关系是多对一的。所以,每个武器只有一个玩家。
Player <---->> Weapon
Weapon <<---> Player
因此,如果您像这样更改谓词,它应该可以正常工作,
[NSPredicate predicateWithFormat:@"player.metadata.selected == %@", @YES];