【发布时间】:2016-02-23 13:25:03
【问题描述】:
我有一个核心数据实体,“实体 1”,它与另一个实体“实体 2”之间存在一对多关系,我们称其为“实体关系”。
我希望能够执行 NSFetchRequest 以与 NSFetchResultsController 一起使用,以返回特定“实体 1”对象的“实体 2”对象列表。
我将“实体 1”作为它自己的变量存储出来,但我似乎找不到设置 NSPredicate 以返回对象的正确方法:
这是我的代码:
NSFetchedResultsController *fetchedEvents;
NSFetchRequest *fetchRequest;
NSError *error = nil;
fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Entity2"];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"Entity2 IN self = %@",entity1Object]];
[fetchRequest setSortDescriptors:@[]];// no sort descriptors
fetchedEvents = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:theManagedObjectContext sectionNameKeyPath:nil cacheName:nil];
[fetchedEvents performFetch:&error];
if (error) {
NSLog(@"Unable to perform fetch.");
NSLog(@"%@, %@", error, error.localizedDescription);
}
return fetchedEvents;
这会崩溃并出现以下错误:
** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "NSMDEvents IN self = %@"'
我做错了吗?或者这是返回具有关系的实体的错误方法?
【问题讨论】:
标签: objective-c core-data nspredicate nsfetchedresultscontroller nsfetchrequest