实体“会议”<--->>“用户”中的多对多关系
我为“会议”创建了一个 NSManagedSubclass,它有一个属性:
@property (nonatomic, retain) NSSet *users;
*users 中的对象保存得很好,我可以看到它们。但是当我尝试获取时,什么也没有发生。我在 Block 内设置了断点,看起来 fetch Block 永远不会到达断点。没有错误。应用程序仍在运行。
我有以下代码:
NSString *userName = @"iphone";
NSLog(@"Username %@", userName);
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Meeting"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"users.username == %@", userName];
NSLog(@"Predicate %@", predicate);
[request setPredicate:predicate];
[self.managedObjectContext executeFetchRequest:request onSuccess:^(NSArray *results)
{ // I have setup the breakpoint here
NSLog(@"results.count %i", results.count);
if(results.count > 0)
{
NSLog(@"object found");
}
}onFailure:^(NSError *error) {
NSLog(@"There was an error! %@", error);
}];
日志:
2013-10-12 20:10:19.200 App[3128:c07] Username iphone
2013-10-12 20:10:19.200 App[3128:c07] Predicate users.username == "iphone"
我可以很好地获取会议中的其他属性。即,如果我将谓词行替换为:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"meetings_id == %@", meetings_id];
断点将停止代码,将显示“找到对象”。
同样,我可以在用户关系中看到“iphone”用户。我究竟做错了什么?