的我有兩個簡單的實體:核心數據謂詞來獲取基於兩個關係的屬性
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