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

Iphone 代码中的核心数据简单关系,iphone,cocoa,core-data,entity-relationship,Iphone,Cocoa,Core Data,Entity Relationship,我是一个可可新手,试图创建一个包含核心数据的iPhone应用程序 我的问题是:我现在有一个小应用程序正在运行,其中有一个名为Playlist的实体,我可以在表视图中显示该实体,并可以在中添加和删除条目 我的PlayerAppDelegate中有这些: 播放管理对象模型 播放列表ManagedObjectContext 播放列表PersistentStoreCoordinator 添加具有以下内容的实体: Playlist *playlist = (Playlist *)[NSEntityDesc

我是一个可可新手,试图创建一个包含核心数据的iPhone应用程序

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

我的PlayerAppDelegate中有这些:

播放管理对象模型

播放列表ManagedObjectContext

播放列表PersistentStoreCoordinator

添加具有以下内容的实体:

Playlist *playlist = (Playlist *)[NSEntityDescription
    insertNewObjectForEntityForName:@"Playlist" 
             inManagedObjectContext:playlistListManagedObjectContext];
现在我想添加一个名为Song的子级别,它具有一个对多关系

添加了播放列表属性:songRelation 添加歌曲属性:播放关系

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

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

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

我是否需要创建这些:

songManagedObjectModel
songListManagedObjectContext
songListPersistentStoreCoordinator
或者歌曲实体是否可以通过播放列表实体访问

也许是这样的:

添加播放列表

添加歌曲

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

保存到持久存储

还是

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

Rgds 下午

彼特

播放列表模型对象上应该有一个类似以下内容的方法:

- (void) addSongObject:(Song *)value;
这是一种动态生成的方法,将歌曲值插入到播放列表中歌曲的关系中。如果添加歌曲关系后未生成播放列表模型对象,则该方法将不存在。因此,请确保为任何更改的实体生成模型类

应使用ManagedObjectContext创建传递给addSongObject方法的歌曲对象,如:

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

杰克

谢谢杰克,我会努力的!虽然不知道如何从enity定义生成新代码……但现在我知道要查找什么了。所以基本上我必须先创建一个播放列表,然后添加一首歌?我不能反过来创作一首歌,然后再创作一个播放列表?(我以后会有更复杂的关系)如果你有一个完整的序列示例,我会喜欢它!类似这样的事情,因为我似乎对这样做的顺序有问题:1。添加播放列表:代码。。。2.保存播放列表:代码。。。3.添加歌曲:代码。。。4.保存歌曲:代码。。。5.连接他们:代码。。。Rgds PetterIt成功了!文件新建。。。给我新的.m和.h文件。然后我使用insertNewObjectForEntityForName制作播放列表,设置其属性,然后再次使用insertNewObjectForEntityForName制作歌曲,设置ints属性,然后使用addSong,然后保存上下文。我没有意识到所有的实体都属于同一个模型和上下文,我必须将歌曲添加到播放列表中,而不是相反。所以,现在我可以继续了。再次感谢!PS在网上根本没有关于这个的代码或教程(提示…;-)!Rgds pmpeter,由于客户机密性,我没有任何代码可以发布。我同意这方面的教程是一件好事,但我没有太多的时间去做。我从使用CoreData中学到的是,您需要使用insertNewObjectForEntityForName使新的空值为空,并使用获取例程从持久性管理器中提取现有实体。然后使用addXObject来管理关系。是的,Jack,这正是管理核心数据中关系所需的“缺失信息”!也许这篇文章的其他读者可以做一个教程,或者至少在一个好的例子中总结一下(我和你有同样的时间问题…;-)Rgds PM