我有一个如下配置的Core Data模型:
有多个 Blockbuster,有些可能包含与其他 Blockbuster 的 DVD 实体共享相同标题的 DVD 实体。例如,Blockbuster A 可能有一份 "Transformers 2" 的拷贝,Blockbuster C 和 Blockbuster G 也是如此。假设没有任何 Blockbuster 有超过一个同名电影的拷贝。
我想从 Blockbuster C 中获取 Transformers 2 DVD。我不想要来自 Blockbuster A 或 G 的复制品,因为我的上司经常去那里,我只能在 Blockbuster C 拷贝这部垃圾片。
我的问题是,如何形成一个 NSFetchRequest,以获取具有标题 "Transformers 2" 的 DVD,它是父实体为 Blockbuster "C" 的子实体?
这种类型的请求将抓取所有 "Transformer 2" DVD,但不会抓取特定于 Blockbuster C 实体的那一个:
- Blockbuster 实体
- 到 DVD 实体的多对多关系。
- DVD 实体
- title 属性(字符串)
- 到父 Blockbuster 实体的一对一关系
有多个 Blockbuster,有些可能包含与其他 Blockbuster 的 DVD 实体共享相同标题的 DVD 实体。例如,Blockbuster A 可能有一份 "Transformers 2" 的拷贝,Blockbuster C 和 Blockbuster G 也是如此。假设没有任何 Blockbuster 有超过一个同名电影的拷贝。
我想从 Blockbuster C 中获取 Transformers 2 DVD。我不想要来自 Blockbuster A 或 G 的复制品,因为我的上司经常去那里,我只能在 Blockbuster C 拷贝这部垃圾片。
我的问题是,如何形成一个 NSFetchRequest,以获取具有标题 "Transformers 2" 的 DVD,它是父实体为 Blockbuster "C" 的子实体?
这种类型的请求将抓取所有 "Transformer 2" DVD,但不会抓取特定于 Blockbuster C 实体的那一个:
NSManagedObjectContext *moc = [self managedObjectContext];
NSString *aTitle = @"Transformers 2";
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title == %@", aTitle];
[request setEntity:[NSEntityDescription entityForName:@"DVD" inManagedObjectContext:moc]];
[request setPredicate:predicate];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
// error handling code
[request release];
有没有一种方法可以在NSPredicate中传递一个相关对象的Object ID,并根据它进行过滤?