3

我是一个可可新手,试图创建一个包含 Core Data 的 iPhone 应用程序。

我的问题是:我现在有一个小应用程序正在运行,它有一个名为 Playlist 的实体,我显示在表格视图中,并且可以在其中添加和删除条目。

我的 PlayerAppDelegate 中有这些:

播放列表ManagedObjectModel

playlistListManagedObjectContext

playlistListPersistentStoreCoordinator

添加实体:

Playlist *playlist = (Playlist *)[NSEntityDescription
    insertNewObjectForEntityForName:@"Playlist" 
             inManagedObjectContext:playlistListManagedObjectContext];

现在我想添加一个名为 Song 的子关卡,它具有一对多关系。

添加播放列表属性:songRelation 添加歌曲属性:playlistRelation

我已经创建了这个实体并设置了两种方式的关系,单击可选标志,因为我希望播放列表中至少有一首歌曲。

设置此关系后,我现在无法再创建播放列表而不会收到警告。问题是“它”也想要一首歌曲,但我不知道怎么做。

在这种情况下,我找不到一个关于如何添加新播放列表的示例,即何时与另一个必须添加的实体有关系。

我需要创建这些:

songManagedObjectModel
songListManagedObjectContext
songListPersistentStoreCoordinator

还是可以通过播放列表实体以某种方式访问​​ Song 实体?

可能是这样的:

添加播放列表

添加歌曲

设置“关系”属性(如何?)

保存到持久存储

或者????

我真的用谷歌搜索了很多,可能在这里误解了一些基本的东西,因为没有可用的例子......

Rgds PM

4

1 回答 1

7

彼得,

PlayList 模型对象上应该有一个方法,类似于:

- (void) addSongObject:(Song *)value;

它是一种动态生成的方法,将 Song 值插入到 PlayList 中歌曲的关系中。如果您在添加 Song 关系后尚未生成 PlayList 模型对象,则该方法将不存在。因此,请确保为任何更改的实体生成模型类。

您传递给 addSongObject 方法的 Song 对象应该使用 ManagedObjectContext 创建,例如:

Song *song = (Song *)[NSEntityDescription insertNewObjectForEntityForName:@"Song" inManagedObjectContext:playlistListManagedObjectContext];

杰克

于 2009-07-24T13:08:09.120 回答