私は2つのスレッドが私のアプリケーションで動作しています。NSManagedObjectContextがロックされています
- メインスレッドでは、エンティティ内のキーの値を更新したり、コアデータから一部の行を取得します。
- バックグラウンドスレッドでは、サーバーからデータをダウンロードします。
しかし[managedObjectContext executeFetchRequest:request error:&error]
上のコアデータの更新/処理中にいくつかの時間...私が取得:
#0 0x34507c5c in semaphore_wait_signal_trap()
#1 0x34507f58 in semaphore_wait_signal()
#2 0x364d573a in pthread_mutex_lock()
#3 0x35c91a2e in -[_PFLock lock]()
#4 0x35c91a12 in -[NSPersistentStoreCoordinator lock]()
#5 0x35c919e8 in -[NSManagedObjectContext(_NSInternalAdditions) lockObjectStore]()
#6 0x35c90676 in -[NSManagedObjectContext executeFetchRequest:error:]()
NSManagedObjectContextがロックされますどのように?これで何ができますか?
これまでの質問に対する適切な回答を受け入れてください。これにより、ここでより良い回答が得られる可能性があります。 – tilo
私も同じ問題がありました。あなたはそれを修正しますか? –
はい。一度に複数のスレッドで同じmanagedobjectコンテキストにアクセスしないようにしてください。受け入れられた回答を確認してください。 – Ritika