核心数据对象的唯一不可更改的id

时间:2014-01-15 17:18:33

标签: ios objective-c core-data

我现在正在制作一个小型播放列表应用程序。

我制作了一个播放列表名称实体,其中包含播放列表的名称。

然后我制作了一个歌曲实体,其中包含所有播放列表中的所有歌曲。要知道哪个歌曲在哪个播放列表中,我将所选播放列表对象中的ObjectID存储在名为selectedRow的属性中。

这就是我用PHP / SQL等其他语言做的方法。问题在于,每次运行应用程序时,播放列表的对象ID似乎都会发生变化。因此,当重新启动应用时,歌曲实体中保存的objectID将不再与播放列表objectID相同。

我该如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

通常,您不是通过存储objectID手动执行此操作,而是设置从播放列表到歌曲的多对多关系。 Core Data的主要功能之一是它能够管理对象图中对象之间的关系。

假设你要按照你所描述的方式去做,你应该知道,当插入一个对象的托管对象上下文后,你NSManagedObjectID得到的-objectID将会改变物体。之后,即使在应用程序启动之间也会保持不变。

但是,听起来你真的不需要存储objectID来做你正在描述的事情。