来自核心数据多对多关系的随机实体
Posted
技术标签:
【中文标题】来自核心数据多对多关系的随机实体【英文标题】:Random entities from Core Data to-many relationship 【发布时间】:2011-06-25 15:03:30 【问题描述】:我正在尝试设置这样的核心数据模型: 用户->好友->相册->图片 (减去用户,每一个都是一对多的关系)
我需要有随机选择X张图片的能力;最好,我想避免不得不随机选择几个朋友,然后从那几张专辑中,最后是几张图片 - 我的核心数据谓词经验非常有限,因此非常感谢任何帮助!
【问题讨论】:
【参考方案1】:据我所知,没有办法在NSFetchRequest
中进行“随机排序”。不过,这似乎是一个不错的主意,因此您可能想要ask for it。
您可以获得的关闭是不为谓词指定任何排序描述符并设置获取限制。如果没有排序描述符,返回的对象将以某种可能不可预测的顺序出现。
【讨论】:
是的,我想我会使用 setFetchLimit 并获取一组对象。然而,我的主要问题是如何设置 NSPredicate 以直接从图片中提取对象。我不想拉X个朋友,然后从那些拉X个相册,最后拉X个图片。我相信答案是使用 SUBQUERY,但我不确定在一对多关系中深入了解的最佳方法。我考虑将图片实体更改为包含与“用户”的关系,然后只要求 X 数量的图片,但核心数据抱怨没有与该关系相反【参考方案2】:嗯,我自己对此不太确定,但你不能用以下功能做点什么:
NSSet *myFetchedPictures;
[myFetchedPictures anyObject];
可能在循环中(不要忘记从NSSet
中删除您使用的对象,否则您可能会再次得到相同的对象)。
我自己对 CoreData 很陌生,所以如果这完全错误,请告诉我 :)
【讨论】:
以上是关于来自核心数据多对多关系的随机实体的主要内容,如果未能解决你的问题,请参考以下文章