2009-07-24 67 views
3

我是一个可可新手,试图创建一个iPhone应用程序,包括核心数据。核心数据代码中的简单关系

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

我在PlayerAppDelegate有这些:

playlistManagedObjectModel

playlistListManagedObjectContext

playlistListPersistentStoreCoordinator

添加实体:

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

现在我想补充一首歌叫次级具有一对多的关系。

播放列表属性补充说:songRelation 宋属性补充说:playlistRelation

我创造了这个实体,建立关系是双向的,可选标志的点击,我想至少有一首歌曲的播放列表。

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

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

我需要创建这些:

songManagedObjectModel 
songListManagedObjectContext 
songListPersistentStoreCoordinator 

或者是宋实体通过某种方式播放列表实体访问?

像这样的东西可能:

添加播放列表

添加歌曲

建立 “关系” 属性

保存到持久性存储

或者??(如何?) ??

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

RGDS PM

回答

7

皮特,

应该是上一个方法PlayList模型对象是这样的:

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

这是一个动态生成的方法,将插入一个S在PlayList中为歌曲建立关系。如果自添加歌曲关系以来尚未生成PlayList模型对象,则该方法将不在该处。所以,确保为任何更改的实体生成模型类。

,你传递给addSongObject方法宋对象应使用ManagedObjectContext等创建:

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

杰克

+0

感谢杰克,会努力的! 不知道如何从环境定义生成新的代码虽然...但现在我知道要寻找什么。 所以基本上我必须先创建一个播放列表,然后添加一首歌曲?我无法用其他方式创建一首歌曲,然后创建一个播放列表? (后来我会有更复杂的关系) 如果你有一个完整的序列的例子,我会喜欢它!这样的事情,因为我似乎有这样做的顺序有问题: 1.添加播放列表:代码... 2.保存播放列表:代码... 3.添加歌曲:代码... 4。保存歌曲:代码... 5.连接它们:代码... Rgds Petter – 2009-07-25 09:32:16