0

Core-Dataセットアップを設計する方法を理解しようとしています。

別のバックグラウンドスレッド(独自のコンテキストがあります)によって更新されるメインスレッドで実行される1つのNSManagedObjectContextがあり、NSManagedObjectContextDidSaveNotificationコールバックを使用してメインコンテキストを更新します。システムのこの部分は正常に機能します。

私の問題は、ユーザーデータを保存しようとするときと、このデータをメインコンテキストに追加しながら、このデータを保存するための要求をWebサーバーにすぐに送信する方法です。サーバーにユーザーデータを保存するための要求は、その属性を調べることによって生成されるため、エンティティオブジェクトは重要です。また、このエンティティオブジェクトは、Webサーバー上のデータを(バックグラウンドコンテキストからメインコンテキストに)正常に更新した場合に正しく更新する必要があります。

したがって、たとえば、メインコンテキストにリンクされた新しいNSEntityDescriptionを作成する場合は、NSManagedObjectContextDidSaveNotificationをリッスンしてから、新しいコンテキストを作成してエンティティオブジェクトIDを送信するバックグラウンドスレッドを作成しますか。これにより、メインコンテキストが更新され、オブジェクトエンティティが送信されるように設定されますか?

4

1 に答える 1

0

メイン スレッドの mananagedObjectContext で managedObjects を変更し (ただし、moc を保存しないでください)、サーバーに要求を送信して変更を行います (NSURLConnection -sendAsynchronous request などを使用)。独自の NSNotification を使用して、moc を安全に保存できるようになったことをコントローラーに警告します。失敗した場合は、ユーザーに警告するか、コア データの取り消しを使用するか、それらの線に沿って何かを行うことができます。

于 2013-03-08T12:18:21.660 に答える