2010-11-29 17 views
1

私のモデルで2つのエンティティ間に1対多の関係があります。私は '1'側にあるentity1を取り出し、関係セットにアクセスします。現在設定されている項目が見つからない場合は、サービスからの情報を要求し、エンティティの作成/挿入、プロパティの設定、エンティティ1への関係の設定、ManagedObjectContextの保存を行います。コアデータの関係が挿入後に更新されない

次に、TableViewを再読み込みします。これは、entity1で設定された関係にただちにアクセスし、表示する関係があるかどうかを調べます。私が何をしても、私がrefreshObjectを呼び出したとしても、関係の数は常に0に設定されています。 私のアプリを再起動すると、数が正しくなり、entity1との関係が正しく設定されていることがわかります。

私がここで間違っているのは何ですか?私はデータモデル内の他のエンティティと同様のコードを実行していますが、この問題は発生していません。不思議なことに、何か不思議です。

ありがとうございます!

答えて

0

関係を設定するときに同じentity1オブジェクトを参照していますか?テーブルコントローラでフェッチするときとインポートするときにURI表現を印刷することでチェックできます。

これは、別のMOCインスタンスを使用して最初のフェッチとインポートを行った結果でもある可能性があります(正しい方法ですが)。インポートルーチンについてさらに詳しく説明すると役に立ちます。

更新:

(以下のコメントに回答)。両方向で双方向関係を確立する必要があります。例:

// set citation's owner 
[citation setOwner:owner]; // or: citation.owner = owner; 
// add citation to owner's citations 
[owner addCitationsObject:citation]; 
+0

私は、カウントを取得しているときに、私が同じエンティティ1オブジェクトをリレーションシップのセットアップ中に参照していることを確認しました。 – toofah

+0

私はオリジナルのフェッチと関係の設定にも同じMOCを使用しています。 – toofah

+0

興味深いことに、関係が設定される前に、オブジェクトの関係は次のようになります:citations =(); – toofah

0

新しいオブジェクトが同じMOC内の関係に挿入され、設定されていますか?