CoreDataと一般的なエンティティに関するヘルプが必要です。私の質問の目的のために、私はアルバムのデータベースを持っていると言うことができます。私は単純に名前、アーティスト、年、アルバムアートなどの属性を持つアルバムという名前のエンティティを持っています。複数のエンティティを使用したCoreDataプログラミング
今、このアルバムの曲を作成できるようにしたいとします。私は歌のために別のエンティティを持っていて、それと1対多の関係があるべきだと思っています。しかし、私はそれをどうやって行うのか正確にはわかりません。
私は別の曲を含む異なるアルバムを持っているので、アルバムAからアルバムBの曲を分離したいと思います。今、曲データベースにそのアルバムが属している行がありますが、これを行う方法。アルバム名が重複している場合はどうなりますか?私は作成された時間と名前を使用してアルバム名のユニークな "ハッシュ"を作成しようとしましたが、より良い方法があります。
また、アルバムを削除したときに削除を処理するためのより良い方法が必要です。
1対多の関係を使用せずに、私はリンクされていない2つの別個のエンティティ、アルバムと曲を作成することができました。しかし、新しいアルバムを作成すると、新しいViewControllerがロードされ、タイムスタンプされた「ハッシュ」のアルバム名がViewControllerに渡されます。次に、新しい曲を作成すると、タイムスタンプ付きのアルバム名がSongsエンティティの行として使用されます。そうすれば、どの曲がアルバムに入っているのかを見ると、ハッシュタイムスタンプを含むクエリだけを表示するようにNSPredicateを設定します。ただし、削除は関係がないため問題になります。
- 「1対多の関係」を使用する必要がありますか?
- 曲が特定のアルバムに属しているかどうかを判断するにはどうすればよいですか?
- 名前が同じ複数のアルバムの場合はどうなりますか?
- 削除はどのように処理しますか?
誰でもこれらの回答、コード、またはチュートリアルを提供できる場合は、非常に感謝しています。
ありがとうございました。 To-Manyリレーションシップを使用していた場合、アルバムエンティティから直接どのように曲にアクセスできますか?その関係を使用して曲のエンティティのデータを取得および設定する方法または方法がありますか? – Sonny
関係はエンティティのプロパティです。他のプロパティと同様に扱うことができます。管理対象オブジェクトのNSSetを使用して取得/設定できます。アップルのこのガイドは、あなたを助けるかもしれません:http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/CoreData/Articles/cdRelationships.html%23//apple_ref/doc/uid/TP40001857-CJBDBHCB – lxt