核心数据获取属性以对对象之间的连接进行排名

时间:2009-07-24 09:39:55

标签: iphone objective-c core-data graph-theory

我想对实体A的实例连接强度与其他实例或实体A在我的图形中的关联程度进行排序。我只需要为最近查看的n个实体执行此操作。 我通过另一个实体B来描述实体A的两个实例之间的关系。这是因为我需要描述每个关系。

我正在考虑使用像这样的获取属性:

ANY isSourceOfRelation.destinationThing == "$SOURCE_THING"
OR ANY isDestinationOfRelation.sourceThing == "$SOURCE_THING"

但我担心这样做是因为我怀疑它会通过关系来评估这一点,而是通过详尽的搜索。这不会是桌面上的问题,但在iPhone上,我的数据集是不实际的。

由于Fetched Properties被懒惰地评估并随后被缓存,我可以访问桌面上每个对象上的fetched属性,但是这个缓存是否会在sqlite存储中维护?

我对此的替代方法是通过访问每个实体B来检索目标实体A并随后将它们添加到字典中来动态评估它。

该图表有10,000个实体A,它们之间有大约30,000个关系(实体B)。

我的首要任务是表现。

您怎么看?

1 个答案:

答案 0 :(得分:0)

听起来像是预先计算和按需单独加载的好候选人,甚至可能在单独的商店中。如果实际数据很小,那就不会太费力了,大多数iPhone都可以为这类东西节省一两个“磁盘”存储空间。

如果值是可变的,您可以在修改后运行后台线程,以确保预计算表保持最新。如果用户在操作完成之前中断操作,则“脏”标志将通知您,以便您可以在下次运行应用程序时再次执行此操作。