1

ローカル ストアから iCloud 対応ストアに既存のデータをシードしようとしています。ローカル管理対象オブジェクトから関係オブジェクトにアクセスしようとすると、次の例外がスローされます。

> illegal attempt to establish a relationship between objects in
> different contexts

これは私がやろうとしていることです..

   NSEntityDescription *entity = [recurringExpense entity];
   RecurringExpense *newRecExpense = [[RecurringExpense alloc]initWithEntity:entity insertIntoManagedObjectContext:moc];
   newRecExpense.category = recurringExpense.category;
   [moc assignObject:newRecExpense toPersistentStore:store];

前もって感謝します。

4

1 に答える 1

0

いずれかのオブジェクトの管理対象オブジェクト コンテキストの外部で、またはスレッド/キュー境界を越えて関係を作成した結果、問題が発生したようです。

Apple のドキュメントによると、「使用されるスレッドでマネージド コンテキストを作成する必要があります。」さらに、関係の両側にあるオブジェクトは、同じ NSManagedObjectContext で参照する必要があります。

アップル より:

ここでコアデータの同時実行を参照してください: http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/CoreData/Articles/cdConcurrency.html

次のスタック オーバーフローの回答で詳細を確認できます: https://stackoverflow.com/a/1554935/1294009

于 2013-03-21T06:38:56.413 に答える