2012-04-14 13 views
0

私はCore Dataを使い始めています。私の場合、どのように動作するかをしっかり理解しようとしています。私はiPadの写真アルバムアプリを構築しています。このアプリでは、キーワードや各写真に関連付けられた他のいくつかの属性に基づいて結果をフィルタリングすることができます。属性は、オリエンテーション、その色の有無などの基本的なものです。キーワードは、ユーザーが選択しなければならない一連の定義済みの値に基づいています。ここでCoreData - 多くの関係

は、私がこれまでのコアデータモデルに持っているものの大まかな概要です:
エンティティ(属性):
写真(ID、タイトル、DESC、ファイルパス)
キーワード(ID、名前)

写真には複数のキーワードが関連付けられている可能性があるため、「写真」からリンク先を「キーワード」に設定して関連付けを行いますか?それは正しい/狂った/完全に間違っていますか?その関係のレコードを追加/取得するにはどうすればいいですか?

答えて

1

これは正しいです。これにアクセスするにはいくつかのアプローチがありますが、最も単純な方法はNSManagedObjectサブクラスを生成することです(エディタ - > Create NSManagedObject Subclass ...)。これらの写真エンティティにデータを入力すると、キーワードという関係がキーワードというプロパティに設定されます。

3

キーワードが定義されていて、ユーザーが定義済みリストからそれらを選択できる場合、エンティティキーワードは使用しませんでした。ヒントは常に単数名(写真、キーワード)を使用してください。私はplistのキーワードを持つだろうし、ユーザーがいくつかを選択すると、コンマで区切られた文字列を作成して、写真のプロパティとして保存することができます。 Josephが言及したように、NSManagedObjectをサブクラス化し、文字列(キーワード)を受け取るメソッドを追加し、そのキーワードがPhotoプロパティのカンマ区切りキーワード値の一部であるかどうかを示すBOOLを返します。