在Core Data中为fetched属性设置限制

时间:2010-01-25 10:50:54

标签: iphone cocoa cocoa-touch core-data

我有两个对象之间的一对多关系,我们称之为图库和图像。 每个图像都属于一个图库,每个图库都有许多图像。

我想将一个fetched属性添加到我的Gallery模型中,该模型将返回一个且只返回一个Image对象。

有没有办法用获取的属性执行此操作?

2 个答案:

答案 0 :(得分:4)

对于获取的属性,谓词是您唯一的选择。

请参阅谓词编程指南 - Aggregate Operations部分。您需要使用array[FIRST]

请注意,每次都可能会获得不同的图像,因为Core Data中不支持有序集。你通常可以通过在“sortOrder”键中维护你的Images的排序顺序并在你的fetch上设置排序描述符来解决这个问题,但我认为不可能在获取的属性上给出排序描述符。

Lion的更新: 已在10.7及更高版本的Core Data中添加了对已订购设置的支持,因此针对10.7及更高版本的应用无需额外的“sortOrder”属性。

答案 1 :(得分:0)

获取的属性由NSFetchedPropertyDescription类表示。您可以修改代码中的属性,直到实际使用托管对象模型为止。因此,在加载托管对象模型的代码中,您可以找到获取的属性描述,并将获取请求替换为更适合您尝试执行的操作。您应该能够以这种方式设置获取限制。