NSManagedObjectsはスレッドセーフではなくmanagedObjectIDsがあり、スレッドごとに個別のmanagedObjectContextが必要であることはわかっています。しかし、最近、バックグラウンドでいくつかのコアデータの変更を行っていたときに問題が発生しました(これに対して別々のrunloopスレッドがありました)。performSelectorOnThread:メソッドがこのrunloopスレッドで呼び出されないことがありました。これは、その理由は、私は、この実行ループのスレッドと「SomeObjectの」上managedObjectContextを別のスレッドから保存しようとするとどうなりますか?
[someObject.managedObjectContext save:&error]
メインスレッド上で作成されたをしていたということであったことが判明しました。しかし、それはしばらくの間、runloopスレッドを「ハングアップ」するだけです。つまり、別のスレッドにコンテキストを保存しようとすると、本当に何が起こるのでしょうか。私はもっと深い理解を探しています、ありがとう。 https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObjectContext_Class/NSManagedObjectContext.htmlから
あなたは瞬時に止まることを知っているようにすべての人生を想像して、体のあらゆる分子が光速で爆発するようにしましょう。 – rickster