私はMySQLデータベースと同期しています。2つの異なるManagedObjectContextで同じNSManagedObjectを編集し、それらの変更をマージできますか?
最初は、すべての新しい/変更されたオブジェクトをループし、そのオブジェクトのすべての外部キーを設定してから、次のオブジェクトを実行するなど...しかし、それはフェッチ要求の多くです。
代わりに、すべての新しい/変更されたオブジェクトをループし、一度に1つずつ外部キーを設定したいと考えました。だから私のオブジェクト上の最初のパスはfk1を設定し、私の次のセットはfk2になります。
クールなフェッチ要求が大幅に削減されました。今私はこれらのfkセッターをスレッドすることができれば興味があります。彼らはお互いに依存していませんが、彼らは1つの関係を設定しているにもかかわらず、同じオブジェクトを変更しており、それは別の関係です。 gitという言葉で言えば、これらの変更は矛盾することなく一緒にマージできますが、一方の子managedObjectContext(childContext:save)の変更をparentManagedObjectContext(parent:performBlock^{parent:save})までプッシュして、それは別のchild managedObjectContext(???)内にありますか?または、マージポリシーは、childContextのオブジェクトのバージョンを1つだけ取り、他のfksは効果的に変更しません。 NSManagedObjectContext/refreshObject:mergeChanges:
をしかし、それはオブジェクトレベルでオブジェクト上にある
は、私は、これが存在することがわかっています。ウィルはフェッチの束を引き起こすでしょうか?それとも、私の全体の文脈をすぐに/バッチで更新しますか?ここからAppleの提案に続き
: 私はどんな関係、私は彼らにどんな関係を指すようにしようとする前に、すべてのエンティティがすでに存在して設定を開始する前に、私が作成した/私の値を更新しましたhttps://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdImporting.html 。
その他:かなりの量のデータを投げかけるので、並行処理の恩恵を受けることができるカップルアプリがあります。クワッドコアiPadアプリでは、最初の同期にかかる時間が本当に助けになります。 NSManagedObjectContext -
を:コアデータを操作するためのいくつかのガイドラインをあなたがやろうとしていると、なぜ(あなたがあなたの質問に以下の行を書き、より明確にすることができる)が、ここでは何か
ありがとうございました。ええ、私はブロック操作を使用しています、そして、それは私がスレッドと言ったときに言いました。私はどのようにNSManagedObjectContext/refreshObject:mergeChanges:の仕組みについての説明が本当に私が後になったのかと思います。あなたのブログ記事を一瞥した後、できるだけジェネリックなものにしようとしているので、同期のForeignKey部分をマルチスレッド化することを再考するかもしれません。データモデルはかなり複雑になる可能性があります。私は今夜仕事の後でそれをもっと近づけるだろう。再度、感謝します。 – yellottyellott