ios - 尝试为 iOS 中的音频播放应用程序设计核心数据模型

标签 ios core-data

我有一个关于 Core Data 建模的问题想问。

我正在开发一款帮助用户内存诗歌的应用程序。本诗分述如下:

  1. 诗分多章

  2. 每章分多行

现在,正因为如此,我想我会创建两个实体如下:

  1. 章节实体,具有以下属性:ChapterNumber、ChapterTitle 和 LineEntity。
  2. LineEntity,具有属性:ChapterNumber、LineNumber、LineSegment(每行分为a、b两部分)、LineText

因为我计划同时为用户播放音频,所以我还需要对音频文件的引用,这就是为什么我认为我也需要一个 AudioFile 实体。因此我也会有:

  1. AudioFile 实体,具有以下属性:ChapterNumber、LineNumber、Start(相关音频开始的时间点)、End(相关音频结束的时间点),可能还有 fileName。我有一个包含整个音频的长文件,但是,我想知道是否应该将音频文件分解成单独的组件,其中每个文件代表诗中的每一行。我个人不确定这是否是正确的方法。

因此,我的章节实体将调用 Line 实体的集合,而每个 line 对象又将引用一个音频实体。这有意义吗?

最佳答案

我可以想象,每首诗都有一个音频文件,每个行实体都应该引用该音频文件的一部分。我将创建该实体“AudioFile”,但我将其称为“AudioFileSplit”(如您所说)字段:ReferenceToLineEntity、Start、End。 请注意,您不需要此实体中的字段 ChapterNumber 或 LineNumber,因为此新实体已经引用了它们(使用行引用,您可以获得行数据、章节数据和诗歌数据)。

现在,您需要存储音频文件的 URL。可能您有一个名为“诗歌”的实体。如果每首诗都有一个音频文件,则应向诗歌实体添加一个新字段(可能是 AudioFileURL?)

恢复,我的模型会像

PoemEntity:[诗歌字段]、AudioFileURL、ReferenceToChapters

ChapterEntity:[章节字段],SingleReferenceToPoem,ReferenceToLines

LineEntity:[ine 的字段], SingleReferenceToChapter, SingleReferenceToAudioFileSplit

AudioFileSplit:SingleReferenceToLine,开始,结束

请注意 LineEntity 和 AudioFileSplit 之间的关系是 1:1,因此您甚至可以进一步简化它:

LineEntity:[行的字段],SingleReferenceToChapter,开始,结束。 (并且没有 AudioFileSplit 实体)

问候 ;)

关于ios - 尝试为 iOS 中的音频播放应用程序设计核心数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33623469/

相关文章:

ios - 在同一个 UITableView 的不同部分显示多个 NSFetchedResultsControllers

ios - 在 iOS 上通过蓝牙进行类似 TLS 的加密?

objective-c - iOS 视频播放器公开哪些事件和/或方法?

ios - 基于一对多关系的Coredata NSFetchedResultsController谓词(外部)

ios - 使用 CoreData 托管对象进行依赖注入(inject)的推荐方法?

java - 是否有与 Apple 的 Core Data 等效的 Java?

iphone - 如何获取许多 UIButtons 的标签但具有相同的 Action 选择器

ios - Mvx 在当前上下文中不存在 mvvmcross

iphone - Objective-C - 如何保存和加载包含图像的数组

ios - 如何防止未初始化数据的快速 CoreData 崩溃