私の iPhone クライアントは、非同期要求に多く関与しており、多くの場合、辞書または配列の静的コレクションを一貫して変更しています。その結果、次のエラーでサーバーからの取得に時間がかかる大きなデータ構造がよく見られます。
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <NSCFArray: 0x3777c0> was mutated while being enumerated.'
これは通常、サーバーへの 2 つの要求が、同じコレクションを変更しようとしているデータと共に返されることを意味します。私が探しているのは、この有害なエラーを回避するためにコードを適切に構成する方法のチュートリアル/例/理解です。正しい答えはミューテックスだと思いますが、個人的にはまだ使用したことがありません。
これは、NSURLConnection を使用して非同期 HTTP 要求を作成し、要求が完了したら委任の手段として NSNotification Center を使用した結果です。同じコレクション セットを変更するリクエストを開始すると、これらの衝突が発生します。