如何使用 Core Data 设计多个标签功能?

tit*_*aca 3 iphone core-data objective-c ios ios6

我有我的第一个带有 Core Data 的 iOS 应用程序,并且有一个 Entry 实体。条目具有名为“Tag”的属性,它是 NSString。

所以现在当用户创建一个新条目时,他可以将任何字符串放入 Tag 字段,它将作为 NSString 存储在 Core Data 中,稍后可以用于按标签搜索。

问题是我想在我的应用程序中实现多个标签功能,但我无法弄清楚如何做到这一点,考虑使用 Core Data,在 iOS 中对于这种情况的正确设计是什么。

例如,如果有人想要创建一个条目并为其添加标签,例如“食物”、“杂货”、“苹果”。我应该如何将它们全部分配给我的条目实体的财产?我应该如何将它们存储在 Core Data 中?作为具有唯一 ID 的单独实体标签?我应该如何检索它们以及用户如何编辑条目的多个标签?

预先感谢您的回答。

Tal*_*ala 5

有两种常见的方法可以做到这一点。

  1. 最简单的方法是将逗号分隔的标签存储在 NString 中。(但您将无法进行涉及标签的过滤和其他操作)

  2. 创建另一个实体 - 带有名称和 ID 的标签。并且有多对多关系(假设一个标签可以被多个条目使用)这里给出了如何做到这一点的很好的解释cdrelationships