Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 核心数据:使用具有对多关系的谓词_Core Data_Nsfetchrequest - Fatal编程技术网

Core data 核心数据:使用具有对多关系的谓词

Core data 核心数据:使用具有对多关系的谓词,core-data,nsfetchrequest,Core Data,Nsfetchrequest,实体“会议”>“用户”中的多个关系 我为“会议”制作了一个NSManagedSubclass,它有一个属性: @property (nonatomic, retain) NSSet *users; *用户保存的对象很好,我可以看到它们。但当我试图去拿的时候,什么也没发生。我在块内设置了断点,看起来fetch块从未到达断点。没有错误。应用程序仍在运行 我有以下代码: NSString *userName = @"iphone"; NSLog(@"Username

实体“会议”>“用户”中的多个关系

我为“会议”制作了一个NSManagedSubclass,它有一个属性:

@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”是否有方法获取所有显示用户中的所有对象?