【发布时间】:2010-03-16 16:23:16
【问题描述】:
我有一个包含 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 的最新子代。
希望这有助于更多地解释它。
【问题讨论】:
-
哎呀,即使您修改了问题,也不清楚您想从数据中得到什么。尝试定义一个规则来获取您的数据,您将看到如何去做。根据您的解释,我没有看到任何规则来获取您想要的数据。你说你想得到bid=44,但后来你说41?
标签: iphone core-data nspredicate nsmanagedobject