MagicalRecord、NSOperationsQueues、および NSURLRequests に問題があります。
MagicalRecord を介して CoreData からのデータ フェッチを処理するモデルを取得しました。それは正常に機能していますが、NSURLRequest を介して Web から API を介してデータをフェッチするバックグラウンド プロセスが必要です。これが主な問題です。に設定する必要がscheduleInRunLoop:forMode
ありNSURLConnection
ます[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
モデルから NSOperationQueue へのコールバックがメイン スレッドによって処理され、すべてが機能しています。
取得したリソースを MagicalRecord 経由で CoreData に保存したいと考えています。NSOperationQueue からの現在のスレッドでの保存を処理するために、my[NSManagedObjectContext MR_contextForCurrentThread]
のstart
メソッドにmy を設定しました。NSOperationQueue
私が今直面している主な問題は[self.localContent MR_saveToPersistentStoreWithCompletion:]
、完了ブロックを呼び出して、CoreData が PersistentStore に保存するのを待つことです。
しかし、この時点で完了ブロックが呼び出されることはなく、NSOperationQueue を更新して終了することはできません。
この時点で私が間違っていることは何ですか?
defaultContext に保存すると、次のステートメントでアプリがランダムにクラッシュします。
[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:]_block_invoke3 Fatal Exception NSGenericException *コレクション <__NSCFSet: 0x1d0490c0> が列挙中に変更されました。
NSOperation 低優先度の同時実行制限キューがクラッシュしました
-[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] EXC_BAD_ACCESS
同じコンテキストで同時にアクセスして保存することが原因であることはわかっていますが、これを修正する方法がわかりません。
MagicalRecord の最新バージョンを使用しています