1

私はcore-dataとhava 2埋め込み関係を多用しています。また、私はカレンダーを持っており、選択した日付にすべての病気のすべての薬をダウンロードする必要があります. サブクエリまたはサブクエリを使用してそれを行うにはどうすればよいですか?

Disease ->>Medicine->>Date

スクリーンショットはこちらhttp://savepic.ru/4608231.png

病気に縛られずにすべての薬を検索できますか?

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:@"MyMedicine" inManagedObjectContext:objectContext]];
[request setSortDescriptors:[NSArray initWithObject:[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES]];
[request setPredicate:[NSPredicate predicateWithFormat:@"(data == %@)", currentData]];
4

1 に答える 1

0

NSFetchRequest を次のように初期化するとします。

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:@"MyMedicine" inManagedObjectContext:objectContext]];
[request setSortDescriptors:[NSArray initWithObject:[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES]];

次のように述語を設定できます。

// Dates
[request setPredicate:[NSPredicate predicateWithFormat:@"date == %@", datesEntity]];

また

// NSDate
[request setPredicate:[NSPredicate predicateWithFormat:@"date.date == %@", date]];

デフォルトでは、すべての関係がフォルトとしてフェッチされます。このフェッチ中にそれらをフェッチする必要がある場合は、このフェッチでフェッチされる関係キー パスを次のように設定できます。

NSArray* relationKeys = [NSArray arrayWithObject:@"disease"];
[request setRelationshipKeyPathsForPrefetching:relationKeys];

このアプローチを使用すると、関連するすべてのDiseaseエンティティが、一致するすべてのエンティティとともに取得されますDates

于 2013-06-06T12:35:12.063 に答える