2011-09-22 61 views
0

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

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

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

回答

0

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

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

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

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

目前尚不清楚对我,为什么你选择了,虽然分隔的数据,这是一个特别脆弱的范例,你将不得不要么吃维护跨店参考的性能损失,或风险无法在动态商店中找到该记录。

+0

非常感谢您对这个答案。我忘了提及静态存储中的每个实体可能被动态存储中的多个实体引用。当我认为这意味着我不能使用瞬态属性时我错了吗?关于为什么我分离数据。原因是将用户数据与我提供的静态数据分开。我认为这会使更新更容易。你相信我应该放弃这个想法吗? – HaukurPalma

+0

我不认为它会阻止您使用瞬态属性,只是该属性的实现需要认识动态存储中的多个数据对象。 – ImHuntingWabbits

相关问题