1

コアデータと関係のルールについて質問を受けました。

複数のユーザーを持つエンティティがあります。ユーザーには、イベントと呼ばれるエンティティとのオプションの 1 対多の関係があります。アプリの起動時に、ユーザー(私自身)と他のユーザーを作成し、CDに保存します。imが保持する User のオブジェクトも NSUserDefaults に保持されます。

それで、今私はイベントを作成し、それをコアデータに保存されているユーザーオブジェクトエンティティに割り当てたいと思っています。次のように、userdefaults に保存したユーザー オブジェクトを使用してイベントを追加することを考えました。

Event *event = (Event *)[NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:managedObjectContext];
//property setters
event.createdBy = userObjectFromNSUserDefaults;

これは正しい方法ですか?その特定のユーザー (この例では私) にイベントを割り当てますか?

別の質問は次のとおりです。

私のイベント クラス (nsmanagedobject のサブクラス) には、そのイベントに InvitedUsers または AcceptedUsers を追加/削除する add メソッドと remove メソッドを含む NSSet プロパティもあります。これらのメソッドを正しく使用するにはどうすればよいですか?

どんなヘルプもクッキーを取得します:=)

4

1 に答える 1

0

最初の質問について - はい、それが Core Data で関係を作成する方法です。特定のオブジェクト (NSManagmentObject、はい?) をプロパティに割り当てるだけです。

1 対多の場合のもう 1 つの方法は、

[userObjectFromNSUserDefaults addEvent:event];

繰り返しますが、その管理オブジェクトの場合。

ここで私が目にする唯一の問題は、それを nsuserdefualts に保存することです。つまり、そこからロードすると、MOC にアタッチされず、動作しないと思います。オブジェクト自体ではなく、nsuserdefaults に ID などを保存する必要があります。アプリが読み込まれると、その ID を使用してデータベースからそのオブジェクトを取得します。

于 2013-04-25T10:55:38.060 に答える