2009-07-24 57 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