非同期要求を作成し、別のスレッド上のこの要求のコールバックでmutexのロックを解除するには、前にミューテックスを設定する必要があります。目的C NSLock:異なるスレッドでNSLockをロックおよびロック解除する
アップルのドキュメントは言う:
警告:NSLockクラスは、そのロック 動作を実装するためにPOSIX スレッドを使用しています。ロック解除 メッセージをNSLockオブジェクトに送信する場合は、 というメッセージが、最初のロックを送信した同じスレッド から送信されていることを確認する必要があります。別のスレッド からロックを解除すると、結果は未定義の になる可能性があります。
この「未定義の動作」を回避し、期待どおりに動作させるにはどうすればよいですか?
この場合、maxConcurrentOperationCount = 1のNSOperationQueueを使用することをお勧めしますか?この場合、1つの操作しか実行されず、競合状態を持つことはできません – Giuseppe