在这里,尝试从我的两个实体名称中获取记录是: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”)。

10-08 12:27