3

私はコアデータを含むiPhoneアプリを作成しようとしているカカオ初心者です。

私の問題はこれです:テーブルビューに表示し、でエントリを追加および削除できるプレイリストと呼ばれる単一のエンティティで実行されている小さなアプリがあります。

私はPlayerAppDelegateにこれらを持っています:

プレイリストManagedObjectModel

PlayplayListManagedObjectContext

playplayListPersistentStoreCoordinator

エンティティの追加:

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

ここで、to-many関係を持つSongというサブレベルを追加します。

追加されたプレイリスト属性:songRelation追加された曲属性:playlistRelation

このエンティティを作成し、両方の方法でリレーションを設定しました。プレイリストに少なくとも1つの曲を入れたいので、[オプション]フラグをクリックします。

この関係を設定した後、警告が表示されずにプレイリストを作成できなくなりました。問題は、「それ」が曲も作成することを望んでいるということですが、私はその方法がわかりません。

この場合、新しいプレイリストを追加する方法の例を示す単一の場所を見つけることができません。つまり、が追加する必要のある別のエンティティとの関係がある場合です。

これらを作成する必要がありますか?

songManagedObjectModel
songListManagedObjectContext
songListPersistentStoreCoordinator

または、Songエンティティはプレイリストエンティティを介してアクセスできますか?

おそらくこのようなもの:

プレイリストを追加

曲を追加

「関係」属性を設定します(どのように?)

永続ストアに保存

または????

私は本当にたくさんググって、利用可能な例がないので、おそらくここで基本的な何かを誤解しました...。

Rgds PM

4

1 に答える 1

7

ペッター、

PlayListモデルオブジェクトには、次のようなメソッドが必要です。

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

これは動的に生成されたメソッドであり、PlayList内の曲の関係にSong値を挿入します。Songリレーションシップを追加してからPlayListモデルオブジェクトを生成していない場合、そのメソッドは存在しません。したがって、変更されたエンティティのモデルクラスを必ず生成してください。

addSongObjectメソッドに渡すSongオブジェクトは、次のようなManagedObjectContextを使用して作成する必要があります。

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

ジャック

于 2009-07-24T13:08:09.120 に答える