我有一个包含bID和pID的NSManagedObject。在NSManagedObjects集合中,我只想要返回一个子集,并且我很难找到正确的NSPredicate或者从Core Data获得我需要的方法。
这是我的完整清单:
出价pid上面有亲子关系。
规则:
如果记录的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。
看模式?
现在,基本上,我只想获取以下行:
出价pidBID = 41,BID = 48,BID = 49都应返回,因为没有PID等于其BID的记录。
应返回BID = 47,因为它是PID = 41的最新子项 应返回BID = 50,因为它是PID = 43的最新子项。
希望这有助于解释它。
答案 0 :(得分:0)
哦,这很简单,您只需要设置出价谓词> = 43。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"bid >= %@", [NSNumber numberWithInt:43]];
我想也许你的NSNumber存在问题,因为Core Data在NSNumber下保存了很多类型,包括:int,BOOL等...... See here