2010-06-10 122 views
5

在我的核心数据模型(在iPhone SDK 3.1上),我有几个与图像的相同实例关联的实体。图像本身也存储为托管对象。为了节省磁盘空间,我试图为图像创建1个数据库文件,为所有其他对象创建另一个数据库文件。核心数据与获取属性的跨存储关系

阅读苹果文档和谷歌上搜索了天,我来到了以下结论: - 创建1个数据模型,包含所有实体 说明 - 使用1个持久存储协调

  • 使用配置为存储图像实体在不同的文件(源码),比其他实体(见here

  • 而且,作为核心数据不支持从实例的关系,一个持久性存储实例在另一个持久化存储,我们E“撷取的属性”创建弱,单向关系

使用的配置是非常简单的:使用数据建模的配置分配给实体,并宣布将持久存储到协调时使用的配置。就我而言,我在商店里添加了协调员。

但是,这里有个问题:当读取时,让我们说一个商店中的'用户'对象,如何使用提取的属性来加载与该用户关联的图像(并将它们分配给用户对象)?

是否必须为用户对象中的“图像”编写自定义存取器方法?如何(以及在​​哪里)为获取的属性指定谓词?

我确信必须有一个教程或例子解释这个(因为这显然是苹果公司建议这样做的方式)。但到目前为止没有运气。

有什么想法?

希望我们可以开始讨论这个话题。我敢肯定,还有其他(更聪明)的方法来解决这个问题...

回答

1

我不确定你对磁盘空间的断言是否正确。如果没有来自测试您的应用的证据,我会坚持使用更简单的一个商店解决方案。这就是说...

您需要在User类中存储图像的一些识别属性。我会使用可变形的属性来存储管理器对象ID。您在数据建模器中添加一个提取的属性,并在那里指定谓词。