objective-c – 如何创建一个基于属性和关系过滤Core数据对象的NSFetchRequest?

objective-c – 如何创建一个基于属性和关系过滤Core数据对象的NSFetchRequest?,第1张

概述我有一个Core Data模型设置如下: > Blockbuster实体 >与DVD实体的To-Many关系。 > DVD实体 > title attribute(string) >与父块重放实体的一对一关系 一个大片可以有多个DVD里面(To-Many)。每个DVD只能是一个Blockbuster(To-One)的一部分。 有多个Blockbuster的,并且一些可以包含与其他Blockbust 我有一个Core Data模型设置如下:

> Blockbuster实体

>与DVD实体的To-Many关系。

> DVD实体

> Title attribute(string)
>与父块重放实体的一对一关系

一个大片可以有多个DVD里面(To-Many)。每个DVD只能是一个Blockbuster(To-One)的一部分。

有多个Blockbuster的,并且一些可以包含与其他Blockbuster的DVD实体共享相同标题的DVD实体。例如,Blockbuster A可能有一个“transformers 2”的副本,Blockbuster C和Blockbuster G的副本。让我们假设没有Blockbuster有同一标题电影的多个副本。

我有兴趣从Blockbuster C中抓取transformers 2 DVD。我不想要的Blockbuster A或G的副本,因为我的老板常常在那里,我只能在燃烧这块垃圾在Blockbuster C。

我的问题是,我如何形成一个NSFetchRequest抓住一个DVD的标题“变形金刚2”,它是Blockbuster“C”父实体的孩子?

这种类型的请求将抓取所有“transformer 2”DVD,但不是特定于Blockbuster C实体的DVD:

NSManagedobjectContext *moc = [self managedobjectContext];Nsstring *aTitle = @"transformers 2";NSFetchRequest *request = [[NSFetchRequest alloc] init];nspredicate *predicate = [nspredicate predicateWithFormat:@"Title == %@",aTitle];[request setEntity:[NSEntityDescription entityForname:@"DVD" inManagedobjectContext:moc]];[request setPredicate:predicate];NSError *error = nil;NSArray *results = [moc executeFetchRequest:request error:&error];// error handling code[request release];

有没有办法传递,说,相关对象的对象ID在nspredicate里面,基于过滤

解决方法 您可以遍历nspredicate中的关系。例如,你可以写类似的东西

[nspredicate predicateWithFormat:@"Title == %@ AND blockbuster.name liKE \"Blockbuster C\"",@"transformers 2"]

现在,如果你没有一个属性来比较,你需要检查实际的对象,那么你可以使用像

[nspredicate predicateWithFormat:@"Title == %@ AND blockbuster IN %@",@"transformers 2",setofBlockbusters]

完整的语法记录在here.但是setofBlockbusters可以是一个集合,一个数组或一个字典(如果它是一个字典,值,而不是键)。

总结

以上是内存溢出为你收集整理的objective-c – 如何创建一个基于属性和关系过滤Core数据对象的NSFetchRequest?全部内容,希望文章能够帮你解决objective-c – 如何创建一个基于属性和关系过滤Core数据对象的NSFetchRequest?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1042514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存