核心数据代码中的简单关系

Pet*_*son 3 iphone cocoa entity-relationship core-data

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

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

我在我的PlayerAppDelegate中有这些:

playlistManagedObjectModel

playlistListManagedObjectContext

playlistListPersistentStoreCoordinator

添加实体:

Playlist *playlist = (Playlist *)[NSEntityDescription
    insertNewObjectForEntityForName:@"Playlist" 
             inManagedObjectContext:playlistListManagedObjectContext];
Run Code Online (Sandbox Code Playgroud)

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

添加了播放列表属性:添加了songRelation Song属性:playlistRelation

我已经创建了这个实体,并且双向建立了关系,单击Optional标记,因为我想在播放列表中至少有一首歌曲.

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

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

我需要创建这些:

songManagedObjectModel
songListManagedObjectContext
songListPersistentStoreCoordinator
Run Code Online (Sandbox Code Playgroud)

或以某种方式通过播放列表实体访问歌曲实体?

也许这样的东西:

添加播放列表

添加歌曲

设置"关系"属性(如何?)

保存到持久性商店

要么????

我已经搜索了很多东西,可能误解了一些基本的东西,因为没有可用的例子....

Rgds PM

Jac*_*Cox 7

皮特,

PlayList模型对象上应该有一个方法,如:

- (void) addSongObject:(Song *)value;
Run Code Online (Sandbox Code Playgroud)

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

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

Song *song = (Song *)[NSEntityDescription insertNewObjectForEntityForName:@"Song" inManagedObjectContext:playlistListManagedObjectContext];
Run Code Online (Sandbox Code Playgroud)

插口