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

标签 iphone ios objective-c core-data ios6

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

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

问题是我想在我的应用程序中实现多个标签功能,但我不知道该怎么做,在考虑使用 Core Data 的情况下,iOS 中这种情况的正确设计是什么。

例如,如果有人想创建一个 Entry 并为其添加诸如“食物”、“杂货”、“苹果”之类的标签。我应该如何将它们全部分配给我的 Entry 实体属性(property)?我应该如何将它们存储在核心数据中?作为具有唯一 ID 的单独实体标签?我应该如何检索它们以及用户如何为一个条目编辑多个标签?

预先感谢您的回答。

最佳答案

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

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

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

关于iphone - 如何使用 Core Data 设计多标签功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17271490/

相关文章:

ios - Xcode 6 中的未知类型名称错误

ios - 我可能创建的 RootViewController、AppDelegate 和 View Controller 类之间有什么区别?

objective-c - Swift 函数包含在 Objective-C 类中不可用的参数

objective-c - Cocoa nsview 改变光标

iphone - IB Xcode 4 中的 Inspector Notes 部分的作用是什么

iphone - CSS 媒体查询 - 无法使其正常工作

iphone - 当用户按下主页按钮并再次双击返回时调用哪些方法

ios - 在 objective-C 中比较 ios 中的多个图像

ios - 拦截电话 - iPhone(挂接 CoreTelephony 的正确方法)

iphone - CoreData 版本控制和阻止轻量级迁移