0

私はクラスB(NSManagedObjectのもサブクラス)の性質を持つクラスA(NSManagedObjectのサブクラスを)持っている、プロパティは@synthesizeない@dynamicで、私のモデルでABの間には関係がありません私はちょうど彼が(A)が生きている間ABオブジェクトへの参照を保持することを望んでいます。
(私は最初のDBからオブジェクトAをフェッチすると、彼のBプロパティがnull)リファレンス・カウント

私はBプロパティのゲッターをオーバーライドするので、最初に呼び出されたときに、彼はデシベルからBオブジェクトを取得します。

ここで、取得結果をBに保持する必要がありますか?
私は、NSManagedObjectContextが管理するオブジェクトを保持することは良い考えではないと聞いたと思います。

答えて

2

NSManagedObjectの保持に問題はありません。先に進んでください。注意すべき唯一のことは、オブジェクトを持っていて削除されている場合です。次にオブジェクトへの参照がありますが、値を読み取ったり設定したりしようとすると、例外が発生します。これは更新するのが難しいため、コアデータ関係を使用している場合、コアデータは伝播を削除します。

したがって、上記のとおり、関係を使用します。 AとBの間に複数の関係があることには何も問題ありません。対応する逆関係も必要です。

はたとえば、あなたはこのような何かを行うことができます。

Person 
    favoriteBook (to-1, inverse is favoriteByPersons) 
    authoredBooks (to-many, inverse is authors) 

Book 
    authors (to-many, inverse is authoredBooks) 
    favoriteByPersons (to-many, inverse is favoriteBook) 

レッツコアデータ

はあなたのために重い物を持ち上げるを行います。関係管理は、Core Dataが本当にうまくいくものの1つです。それをあなた自身でコピーしようとしないでください。

+0

ありがとう:)私は同じエンティティに2つの関係を持つことができるかどうかわかりませんでした。 – Eyal

0

AとBの間にの関係を明示的に指定する必要があります。これは、Core Dataが管理するために設定されたものです。シンプルで堅牢で、メモリの問題を心配する必要はありません。

+0

問題はすでにAとBの間に多対多の関係があるため、別のものを持つことはできません。 – Eyal

+0

あなたはあなたの質問に「AとBの関係はありません。それで今は何ですか?質問を編集し、達成したいことを明確に指定してください。 – Mundi