0

クラスA(NSManagedObjectのサブクラス)のプロパティを持つクラス(NSManagedObjectのサブクラスB)がありますが、プロパティはそうではあり@synthesizeません。モデルとの間に@dynamic関係はありません。 ) 生きている。( dbから 最初にオブジェクトをフェッチしたとき、彼のプロパティはnullです) ABABA
AB

プロパティゲッターをオーバーライドするので、最初に呼び出されたときに、dbからオブジェクト Bをフェッチします。B

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

4

2 に答える 2

2

保持することに問題はありませんNSManagedObject—先に進んでそれを実行してください。注意すべき唯一のことは、オブジェクトを持っていて、それが削除されているかどうかです。次に、オブジェクトへの参照がありますが、オブジェクトの値を読み取ったり設定したりしようとすると、例外が発生します。これは更新が難しいため、Core Dataリレーションシップを使用している場合、CoreDataは伝播を削除します。

したがって、上記のように、関係を使用します。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)

CoreDataに手間のかかる作業を任せましょう。関係管理は、CoreDataが本当に得意とすることの1つです。それを自分でコピーしようとしないでください。

于 2012-05-06T10:18:40.000 に答える
0

AとBの間は明らかに1対1の関係にある必要があります。これは、CoreDataが管理するために設定されているものです。よりシンプルで堅牢であり、メモリの問題について心配する必要はありません。

于 2012-05-05T09:16:04.957 に答える