在这里,尝试从我的两个实体名称中获取记录是:Resgistration&Unique。他们之间的关系名称是roshan。
当m执行时,显示错误:“ NSInvalidArgumentException”,原因:“此处不允许使用to-many键”
NSManagedObjectContext *context = [appDelegate manageObjectContext];
NSError *error = nil;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"roshan.number == %@", @"1"];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Resgistration" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
[request setPredicate:predicate];
[request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObjects:@"Unique",nil]];
[request setIncludesSubentities:YES];
NSArray* returnArray = [context executeFetchRequest:request error:&error];
if([returnArray count] > 0) {
Resgistration* reg = [returnArray objectAtIndex:0];
NSLog(@"%@ %@", reg.name, reg.number);
}
最佳答案
roshan
是一对多关系,因此语句“ roshan.number == 1”是不明确的。
您是说它至少有一个roshan,其数字等于1(“ ANY roshan.number == 1”。
您是说所有的roshans都等于1(“ ALL roshan.number == 1”)。
您的意思是说,只有一个roshan并且只有一个roshan,并且它有一个数字(“ ALL roshan.number == 1 AND roshan。@ count == 1”)。