0

bIDとpIDを含むNSManagedObjectがあります。NSManagedObjectsのセット内で、サブセットのみを返したいのですが、正しいNSPredicateまたはコアデータから必要なものを取得する方法を見つけるのに苦労しています。

これが私の完全なリストです:

入札pid410 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には、PID = 41であるため、BID = 41の親レコードがあります。上記の#1を参照してください。
6)BID=48は親レコードです。
7)BID=49は親レコードです。
8)BID = 50は子レコードであり、その親レコードのBID=43です。

パターンを見ますか?

さて、基本的にそれから、私は次の行だけをフェッチしたいです:

入札pid440 47 41 48 0
49 0 50 43



BID = 41、BID = 48、BID = 49は、BIDと等しいPIDを持つレコードがないため、すべて返される必要があります。

BID = 47は、PID = 41の最新の子である
ため、返される必要があります。BID= 50は、PID = 43の最新の子であるため、返される必要があります。

これがそれをもっと説明するのに役立つことを願っています。

4

1 に答える 1

0

おお、これはとても簡単です。入札の述語 >= 43 を設定するだけです。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"bid >= %@", [NSNumber numberWithInt:43]];

Core Data は NSNumber の下に多くの型を保存し、int、BOOL などを含むため、おそらく NSNumber に問題があると思います...こちらを参照してください

于 2010-03-16T16:35:02.297 に答える