【发布时间】:2014-05-18 11:13:28
【问题描述】:
我最近一直在阅读和处理核心数据,我喜欢它实现数据存储的方式。
但是,我仍然无法在我的应用中解决一件事。
在我的数据模型中,我有一个实体,它代表用户在文本字段中插入的一段文本。我希望能够让用户能够通过引用将这段文本嵌入到另一个文本字段中。
如果我直接使用数据库,我会这样做:
- 用户将一段文本添加到数据库中。它恰好有行索引
17。 - 用户返回主编辑器,在该编辑器中可以引用数据库中的文本块并插入诸如
{chunk.17}之类的模式,其中17是数据库中的行索引。 - 用户单击“解析”按钮,应用程序会在数据库中查询该行,并将字符串
{chunk.17}替换为存储在其中的文本块。
由于 Core Data 没有自动递增索引之类的东西,我不确定如何在不做太多工作的情况下创建类似的行为。任何想法表示赞赏!
【问题讨论】:
-
顺便说一句...回应您的评论的注释...“核心数据没有自动递增索引之类的东西”。如果您使用
NSSQLiteStoreType,并且您在不使用NSManagedDocument的情况下保存数据,您可以(通过终端)打开 SQLite 数据库并检查数据库。您会注意到,当 Core Data 创建每个表时,它还会创建Z_PK INTEGER PRIMARY KEY,这是一个自动增量主键。我知道这不能在代码中直接访问,但它存在。我知道,与您的问题无关,只是想提供此信息作为背景。 -
针对您的问题,您是否正在为您希望在代码中访问的数据模型中的每个实体准备一个
NSManagedObject子类? -
@andrewbuilder 是的。我正在使用由 Xcode 生成的类,并使用类别来构建它们。
-
您是否使用 UITableViewController 类和视图来管理和呈现您的数据?也就是说,你如何向用户展示这个?
-
很抱歉,这是在 OS X 上。我正在使用带有
NSPersistentDocument的基于文档的应用程序。为了显示数据,我使用了一个简单的NSFetchRequest。
标签: objective-c macos core-data