NSPredicate 与关系

NSPredicate with relation

我在使用给定谓词获取所有核心数据实体时遇到问题。我的模型看起来像这样。 PlayerWeapon 具有一对多关系,PlayerMetadata

具有一对一关系

我想列出属于 PlayerMetadataselected 属性设置为 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.'

我做错了什么?

干杯, 一月

您应该修改您的查询。 'A​​LL' 和 'A​​NY' 关键字应该用于许多关系。从玩家到武器,你有一对多的关系。但是,如果你颠倒关系,你会看到关系是多对一的。所以,每个武器只有一个玩家。

Player <---->> Weapon

Weapon <<---> Player

因此,如果您像这样更改谓词,它应该可以正常工作,

[NSPredicate predicateWithFormat:@"player.metadata.selected == %@", @YES];