如何根据另一个数据存储区中的数据从一个数据存储区订购核心数据获取结果

时间:2011-09-22 21:19:05

标签: iphone ios core-data

我正在构建一个iPhone应用程序,其中有两个数据存储区,一个用于静态数据,另一个用于动态数据。我为此使用了两个独立的核心数据堆栈。动态数据包括ID的实体和属性以及日期的另一个属性。 ID属性引用静态数据存储区中实体的匹配ID。

我想从静态存储中获取动态数据存储区中具有ID的项目,并根据动态数据存储区中的日期对它们进行排序。我已经用Google搜索了这个,并在这里搜索了有关跨商店获取属性的问题,但我还没有设法找到解决方案。我可以从静态存储中获取正确的项目,但顺序不正确,所以我的问题是:我可以以某种方式(可能使用获取的属性)获取按动态存储中的日期排序的静态项目,或者我是否需要在我获取它们之后在代码中对它们进行排序?

编辑: 静态存储中的实体可能会被动态存储中的多个实体引用。

1 个答案:

答案 0 :(得分:0)

您可以在托管对象模型中向实体添加瞬态属性。瞬态属性是按需计算的,因此这将是在其他商店中进行查找的合适位置。

然后在您的获取请求中,您只需添加一个排序描述符,该描述符引用目标对象上的瞬态属性。

在transient属性的实现中,查找其他商店中的匹配记录并返回日期值。

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdNSAttributes.html

我不清楚为什么你选择隔离数据,这是一个特别脆弱的范例,因为你必须要么牺牲维护跨商店参考的性能,要么冒险无法找到记录在动态商店里。