的我有两个简单的实体:核心数据谓词来获取基于两个关系的属性
Part {
@NSManaged var states: Set<PartState>
}
PartState {
@NSManaged var date: Date
@NSManaged var state: Int
}
我想从Part
获取的实体,即最新的PartState
有state == 1
。
我想尽量创造NSPredicate
:
NSPredicate(format: "SUBQUERY(states, $s, $s.date == max($s.date) AND $s.state == 1)[email protected] > 0")
它看起来像
max($.date)
检查所有现有PartState
实体,而不仅仅是那些属于给定Part
,总是返回1分或0的结果。Unable to parse the format string...
NSPredicate(format: "ANY states.state == 1 AND ANY states.date == [email protected]")
返回有过状态== 1(这是我所期望的)的所有实体:
NSPredicate(format: "ANY (states.state == 1 AND states.date == [email protected])")
与失败。
这使我心中唯一的其他的解决办法,是让newestState财产部分,但我仍然在寻找一些基于NSPredicate路。
我认为这将返回我曾经有过状态的部分== 1 States属性设置为并包含状态更改的历史记录。我想要获取当前(最新)状态== 1的所有部件。 –
tzaloga