私はマルチスレッドプログラミングとココアにかなり慣れていません。
NSMutableArray
iVarにアクセス/変更するにはロックが必要です。それを行う最も簡単な方法は何ですか?
そして、私がここにいる間、皆さんはObj-c / Cocoaを使用したマルチスレッドプログラミングについて読んでいますか?どうも。
私はマルチスレッドプログラミングとココアにかなり慣れていません。
NSMutableArray
iVarにアクセス/変更するにはロックが必要です。それを行う最も簡単な方法は何ですか?
そして、私がここにいる間、皆さんはObj-c / Cocoaを使用したマルチスレッドプログラミングについて読んでいますか?どうも。
@synchronized
ブロックの使用:
@synchronized(MyArray)
{
// thread safe code
}
このブロックは Xcode によって認識されないことがありますが、信じてください。
詳細については、この記事を参照してください。
別の方法は、GCDとシリアルキューを使用することです。
NSArrayプロパティには、プライベートシリアルキューを使用するアクセサを記述します。設定し、バッキングストアから値をフェッチします。シリアルキューはFIFOであり、ブロックを順番に実行するため、これにより、プロパティへのスレッドセーフなアクセスが提供されます。