首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取一对多关系的核心数据

问取一对多关系的核心数据
EN

Stack Overflow用户
提问于 2013-04-02 03:07:57
回答 1查看 309关注 0票数 0

我是核心数据的新手。我有两个实体,场地和音乐会,两场关系音乐会(从场地到音乐会)和场地(从音乐会到地点)。我想要做的基本上是检索所有音乐会的场地,其中包含两个日期(开始日期-结束日期)。

代码语言:javascript
复制
NSPredicate *concertsToShow = [NSPredicate predicateWithFormat:@"ALL concerts.startDate <= %@ AND concerts.endDate >= %@",startDate,endDate];

    NSManagedObjectContext *managedObjectContext = ((AppDelegate *)[[UIApplication sharedApplication]delegate]).managedObjectContext;

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:[NSEntityDescription entityForName:@"Venue" inManagedObjectContext:managedObjectContext]];
    [request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObjects:@"concerts", nil]];
    [request setPredicate:concertsToShow];

    NSError *error = nil;
    NSArray *concerts = [managedObjectContext executeFetchRequest:request error:&error];

    return concerts; 

当代码运行时,我得到了以下异常:

由于“NSInvalidArgumentException”异常终止应用程序,原因:“不支持谓词(Null)”*

我也试图在谓词上加上括号,但是它说它不能解析谓词。

最后我使用了一个子查询

代码语言:javascript
复制
NSPredicate *concertsToShow = [NSPredicate predicateWithFormat:@"SUBQUERY(concerts, $i, $i.startDate BETWEEN {%@,%@}).@count>0",startDate,endDate];

问题是,它只对场馆执行过滤:它只检索包含在startDate和endDate之间的音乐会的场地,但是相关的音乐会没有被过滤。我想要实现的是让这种过滤加上对音乐会的过滤。例如,我有两个与音乐会相关的场地(仅在示例中显示日期):“爱尔兰酒吧”->> (01-04-2013,02-04-2013,03-04-2013,04-04-2013) ->> (05-04-2013)

如果我的谓词的startDate和endDate分别为02-04-2013和04-04-2013,则结果应该是:

“爱尔兰酒吧”->> (02-04-2013,03-04-2013,04-04-2013)

EN

回答 1

Stack Overflow用户

发布于 2013-04-02 05:32:08

正如Rob所提到的,您的错误消息说您有零谓词。

因此,在发出请求之前,将日志和检查谓词值放在一起。

代码语言:javascript
复制
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ALL concerts.startDate <= %@ AND concerts.endDate >= %@",startDate,endDate];
NSLog(@"my predicate is :%@",predicate);

此外,对于我建议的良好做法,请始终这样做。

代码语言:javascript
复制
if(predicate!=nil){
  //now make request here
}

如果你需要更多的帮助,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15755398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档