iphone - 使用多个实体进行 CoreData 编程
<p><p>我正在寻求有关 CoreData 和一般实体的帮助。就我的问题而言,假设我有一个专辑数据库。我有一个名为专辑的实体,具有名称、艺术家、年份、专辑艺术等属性。</p>
<p>现在,假设我希望能够为这张专辑创作歌曲。我在想我应该为歌曲设置一个单独的实体,并与之建立一对多的关系。但是,我不确定我将如何做到这一点。</p>
<p>由于我有不同的专辑,其中包含不同的歌曲,我想将专辑 A 中的歌曲与专辑 B 分开。现在,我可以在歌曲数据库中为它所属的专辑留一行,但这是最有效的方法去做这个。如果我有重复的专辑名称怎么办。我尝试使用创建时间和名称创建专辑名称的唯一“哈希”,但有没有更好的方法。</p>
<p>我还需要一种更好的方法来处理删除相册时的删除操作。 </p>
<p>在不使用一对多关系的情况下,我能够创建两个独立的实体,专辑和歌曲,它们没有链接在一起。但是,当我创建一个新专辑时,它会加载一个新的 ViewController 并将“哈希”时间戳专辑名称传递给 ViewController 。然后,当我创建一首新歌曲时,它使用该哈希时间戳专辑名称作为歌曲实体中的一行。这样,当我查看专辑中有哪些歌曲时,我只需设置一个 NSPredicate 以仅显示包含哈希时间戳的查询。但是,删除是一个问题,因为它们没有关系。 </p>
<ol>
<li>我应该使用“一对多关系”吗?</li>
<li>我应该如何判断一首歌是否属于某个专辑?</li>
<li>如果是多张同名专辑怎么办?</li>
<li>如何处理删除?</li>
</ol>
<p>如果有人能提供任何这些的答案、代码或教程……将不胜感激。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>所以,希望这个简短的回答能让你走上正轨:</p>
<p>一对多的关系适用于专辑->歌曲。至于如何创建它 - 假设您有两个实体,一个名为 <em>"album"</em>,一个名为 <em>"song"</em>。在 XCode 的数据模型窗口中,选择您的“专辑”实体并创建一个新关系(点击属性表中的 + 按钮)。 </p>
<p>给你的关系一个名字,决定它是否是可选的(假设不是,因为每张专辑中必须至少有一首歌),然后选择<em>“song”</em>作为你的目标实体.最后,单击标记为“To-Many relationship”的复选框。就是这样!</p>
<p>现在您已经建立了关系,当您删除专辑本身时,与专辑关联的任何歌曲都将被删除。</p>
<p>关于问题3:“如果有多个同名专辑怎么办”。这是相当常见的情况。使用英文字符串作为您的主要标识符是非常不寻常的。您希望为每张专辑拥有某种唯一 ID——这将是您的主键/唯一键。如果您对这意味着什么感到困惑,那么在继续使用 Core Data 之前,您应该研究一些更基本的数据库概念以便更好地处理它。</p></p>
<p style="font-size: 20px;">关于iphone - 使用多个实体进行 CoreData 编程,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/4647666/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/4647666/
</a>
</p>
页:
[1]