CoreData - 许多关系

时间:2012-04-14 17:32:02

标签: ios core-data

我开始使用Core Data,我正在努力深入了解它在我的情况下是如何工作的。我正在构建一个iPad相册应用,允许用户根据关键字和与每张照片相关的其他几个属性过滤结果。属性将是基本的东西,如方向和是否其颜色。关键字将基于一组用户必须选择的定义值。

以下是迄今为止我在核心数据模型中所拥有的大致轮廓:
实体(属性):
照片(id,title,desc,文件路径)
关键字(id,name)

由于照片可以包含多个与之关联的关键字,我是否可以通过“照片”创建一个与“关键字”目标相关的关系,并将其与多个关系进行关系?这是正确的/疯狂的/完全错误的吗?我将如何为该关系添加/获取记录?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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