我有一个包含 bID 和 pID 的 NSManagedObject。在 NSManagedObjects 集合中,我只希望返回一个子集,并且我正在努力寻找正确的 NSPredicate 或从 Core Data 中获取所需内容的方法。
这是我的完整清单:
出价 PID
41 0
42 41
43 0
44 0
47 41
48 0
49 0
50 43
上面有父子关系。
规则:
如果记录的 PID = 0,则表示该记录是父记录。如果记录的 PID != 0,则该记录的 PID 指的是它的父记录的 BID。
例子:
1) BID = 41 是父记录。为什么?因为记录 BID=42 和记录 BID=47 的 PID 为 41,这意味着它们是其 PID 记录的子项。
2) BID = 42 有一个 BID = 41
的父记录。 3) BID = 43 是一个父记录。
4) BID = 44 是父记录。
5) BID = 47 有一个 BID = 41 的父记录,因为它的 PID = 41。参见上面的#1。
6) BID = 48 是父记录。
7) BID = 49 是父记录。
8) BID = 50 是子记录,其父记录的 BID = 43。
看到图案了吗?
现在,基本上,我只想获取以下行:
出价 PID
44 0
47 41
48 0
49 0
50 43
BID = 41、BID = 48、BID = 49 都应该返回,因为没有 PID 等于它们的 BID 的记录。
应该返回 BID = 47,因为它是 PID = 41 的最新子代。
应该返回 BID = 50,因为它是 PID = 43 的最新子代。
希望这有助于更多地解释它。