UI関連のコールバックとタイマーイベント間でデータ構造を保護するために、ミューテックスが必要ですか?iPhoneのデータ構造をコールバックやタイマーから保護する必要がありますか?
答えて
ココアタッチからデータ構造にアクセスするにはどうすればよいですか?ビューのデータを設定すると、そこに保持され、独自のコピーが使用されます。あなたは本当に自分のコードについて心配する必要があります。
私はUITableViewに燃料を供給するために使用されるいくつかのデータ構造を持っています。基本的な内容は、Webサーバーからデータを取得するタイマーコールバックによって更新することができます。私は、コンテンツが更新されたときにユーザーがセルに触れることを心配しています。いずれにしても、私のアプリケーションが未知の例外 'NSUnknownKeyException'、理由: '[
タイマは別のスレッドでは実行されません。それらはアプリケーションの実行ループに追加され、メインスレッド上で実行されます。あなたのクラッシュは、おそらく別の問題(恐らくそれについて語っている問題)によって引き起こされている可能性が高いです。 –
@DeShawnT - それがあなたのエラーなら、この質問はおそらく起こっていることに対処しているでしょう:http://stackoverflow.com/questions/3481409/app-crashes-when-tab-bar-item-is-selected –
すべてのUI関連のコールバックはメインスレッドにあります。 UIKitやその他のiOSフレームワークで生成されたスレッドは、通常、呼び出し元から隠されています。独自のスレッドを生成しない限り、iOS用に開発するときにこの種のロックを心配する必要はほとんどありません。
あなたはどんなタイプの操作を心配していますか?これはおそらく助けになるかもしれませんが、あなたが共有しているリソースは何ですか?それが単なるデータ構造の場合、なぜ並行読み込みと書き込みがありますか? http://stalintechnologies.blogspot.com/2008/09/theory-on-rmutex.html –
SO DeShawnへようこそ – Nektarios