0

我开始使用 Core Data,并试图深入了解它在我的案例中是如何工作的。我正在构建一个 iPad 相册应用程序,它允许用户根据关键字和与每张照片相关的其他几个属性来过滤他们的结果。属性将是基本的东西,如方向以及它的颜色与否。关键字将基于一组定义的值,用户必须从中进行选择。

到目前为止,这是我在核心数据模型中的粗略概述:
实体(属性):
照片(id、标题、desc、文件路径)
关键字(id、名称)

由于一张照片可以有多个与之关联的关键字,我是否可以从“照片”与“关键字”的目的地创建关系并使其成为一对多关系?那是正确的/疯狂的/完全错误的吗?我将如何为该关系添加/获取记录?

4

2 回答 2

3

如果定义了关键字并且用户可以从定义的列表中选择它们,我就不会使用实体关键字。提示始终使用单数名称(照片、关键字)。我将关键字放在 plist 中,用户选择一些关键字,然后您可以创建一个逗号分隔的字符串以保存为 Photo 上的属性。正如约瑟夫所提到的,您想要继承 NSManagedObject 子类,然后我将添加一个接收字符串(关键字)并返回 BOOL 的方法,指示该关键字是否是 Photo 属性上逗号分隔的关键字值的一部分

于 2012-04-14T17:51:50.743 回答
1

这是对的。有几种方法可以访问它,但最直接的方法是生成 NSManagedObject 子类(Editor->Create NSManagedObject Subclass...)。当填充这些照片实体时,关键字关系将填充在称为关键字的属性中。

于 2012-04-14T17:43:01.317 回答