Core data 核心数据:使用具有对多关系的谓词
实体“会议”>“用户”中的多个关系 我为“会议”制作了一个NSManagedSubclass,它有一个属性:Core data 核心数据:使用具有对多关系的谓词,core-data,nsfetchrequest,Core Data,Nsfetchrequest,实体“会议”>“用户”中的多个关系 我为“会议”制作了一个NSManagedSubclass,它有一个属性: @property (nonatomic, retain) NSSet *users; *用户保存的对象很好,我可以看到它们。但当我试图去拿的时候,什么也没发生。我在块内设置了断点,看起来fetch块从未到达断点。没有错误。应用程序仍在运行 我有以下代码: NSString *userName = @"iphone"; NSLog(@"Username
@property (nonatomic, retain) NSSet *users;
*用户保存的对象很好,我可以看到它们。但当我试图去拿的时候,什么也没发生。我在块内设置了断点,看起来fetch块从未到达断点。没有错误。应用程序仍在运行
我有以下代码:
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);
}];
日志:
我可以在会议中获取其他属性。i、 e.如果我将谓词行替换为:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"meetings_id == %@", meetings_id];
断点将停止代码,将显示“找到对象”
同样,我可以在用户关系中看到“iphone”用户。我做错了什么?对于许多关系,您必须使用谓词修饰符,以说明预期的行为。由于您正在搜索
会议
s,CoreData无法从您的谓词用户中找出。用户名==%@
,如果您想要会议
s,其中所有
用户都有指定的用户名,或者只有任何
单个用户满足要求的用户(请参阅此处了解详细信息)
试着改变一下,因为我认为这是你想要的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY users.username == %@", userName]
对于许多关系,您必须使用谓词修饰符,这说明了预期的行为。由于您正在搜索
会议
s,CoreData无法从您的谓词用户中找出。用户名==%@
,如果您想要会议
s,其中所有
用户都有指定的用户名,或者只有任何
单个用户满足要求的用户(请参阅此处了解详细信息)
试着改变一下,因为我认为这是你想要的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY users.username == %@", userName]
对于许多关系,您必须使用谓词修饰符,这说明了预期的行为。由于您正在搜索
会议
s,CoreData无法从您的谓词用户中找出。用户名==%@
,如果您想要会议
s,其中所有
用户都有指定的用户名,或者只有任何
单个用户满足要求的用户(请参阅此处了解详细信息)
试着改变一下,因为我认为这是你想要的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY users.username == %@", userName]
对于许多关系,您必须使用谓词修饰符,这说明了预期的行为。由于您正在搜索
会议
s,CoreData无法从您的谓词用户中找出。用户名==%@
,如果您想要会议
s,其中所有
用户都有指定的用户名,或者只有任何
单个用户满足要求的用户(请参阅此处了解详细信息)
试着改变一下,因为我认为这是你想要的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY users.username == %@", userName]
是因为它在一个街区里吗?你什么意思?块可以与其他属性一起使用。是因为它在块中吗?你是什么意思?块可以与其他属性一起使用。是因为它在块中吗?你是什么意思?块可以与其他属性一起使用。是因为它在块中吗?你是什么意思?块可以与其他属性一起使用。谢谢。我也有同样的行为。我的日志显示:2013-10-12 20:38:34.367应用程序[3532:c07]用户名iphone 2013-10-12 20:38:34.367应用程序[3532:c07]谓词任何用户。用户名==“iphone”是否有方法获取所有显示用户中的所有对象?谢谢。我也有同样的行为。我的日志显示:2013-10-12 20:38:34.367应用程序[3532:c07]用户名iphone 2013-10-12 20:38:34.367应用程序[3532:c07]谓词任何用户。用户名==“iphone”是否有方法获取所有显示用户中的所有对象?谢谢。我也有同样的行为。我的日志显示:2013-10-12 20:38:34.367应用程序[3532:c07]用户名iphone 2013-10-12 20:38:34.367应用程序[3532:c07]谓词任何用户。用户名==“iphone”是否有方法获取所有显示用户中的所有对象?谢谢。我也有同样的行为。我的日志显示:2013-10-12 20:38:34.367应用程序[3532:c07]用户名iphone 2013-10-12 20:38:34.367应用程序[3532:c07]谓词任何用户。用户名==“iphone”是否有方法获取所有显示用户中的所有对象?