我是一名可可新手,试图创建一个包含Core Data的iPhone应用程序。
我的问题是:我现在有一个小应用程序正在运行一个名为播放列表的实体,我在表格视图中显示,可以添加和删除条目。
我在PlayerAppDelegate中有这些:
playlistManagedObjectModel
playlistListManagedObjectContext
playlistListPersistentStoreCoordinator
添加实体:
Playlist *playlist = (Playlist *)[NSEntityDescription
insertNewObjectForEntityForName:@"Playlist"
inManagedObjectContext:playlistListManagedObjectContext];
现在我想添加一个名为Song的子级别,它具有多对多的关系。
添加了播放列表属性:songRelation 歌曲属性添加:playlistRelation
我创建了这个实体,并且双向设置关系,点击Optional标记,因为我想在播放列表中至少有一首歌曲。
设置此关系后,我现在无法再创建播放列表而不会收到警告。问题是“它”也想创作一首歌,但我不知道如何。
在这种情况下,我找不到一个关于如何添加新播放列表的示例的单个地方,即何时与另一个必须添加的实体有关系。
我是否需要创建这些:
songManagedObjectModel
songListManagedObjectContext
songListPersistentStoreCoordinator
或者歌曲实体是否可以通过播放列表实体访问?
或许这样的事情:
添加播放列表
添加歌曲
设置“关系”属性(如何?)
保存到持久存储
或者????
由于没有可用的例子,我已经搜索了很多并且可能误解了一些基本内容....
RGDS PM
答案 0 :(得分:7)
皮特,
PlayList模型对象上应该有一个方法,如:
- (void) addSongObject:(Song *)value;
这是一个动态生成的方法,它将Song值插入PlayList中歌曲的关系中。如果自添加Song关系后尚未生成PlayList模型对象,则该方法将不存在。因此,请确保为任何已更改的实体生成模型类。
您传递给addSongObject方法的Song对象应该使用ManagedObjectContext创建,如:
Song *song = (Song *)[NSEntityDescription insertNewObjectForEntityForName:@"Song" inManagedObjectContext:playlistListManagedObjectContext];
杰克