0

私のデータモデルには、次のものがあります。

Activity(name, sponsor, Location*) // one activity may have many Locations
Location(name, street, suburb, state, postcode)

また、指定された場所名でアクティビティを取得する方法が必要です。たとえば、ユーザーが「ICT ビル」のすべてのアクティビティを知りたい場合、クエリの述語をどのように構築すればよいでしょうか?

何かのようなもの:

"Location.name == ICT Building" ?

ありがとう!

4

2 に答える 2

0

私はついにそれを理解しました。変化する

@"Location.name == %@"

@"Location.name CONTAINS %@"

@CoreCodeの答えで。

于 2012-07-06T02:26:41.510 に答える
0

これを使用してmanagedObjectContext、コンテキストは次のとおりです。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
    entityForName:@"Activity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSString *locationName = @"ICT Building";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"Location.name CONTAINS %@", locationName];
[fetchRequest setPredicate:pred];
NSError *error = nil;
NSArray *objects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

これにより、名前が ICT Building である管理対象オブジェクトの配列が返されます。

于 2012-07-06T01:04:44.230 に答える