2012-01-09 12 views
0

ファイルシステムの内容を表示するためのアプリケーションを開発中です。私は、ディスプレイスレッド内の変数の扱いに関する問題

1)OutlineView

2)IKImagebrowserView

ユーザがビューを切り替えることができるの二つのタイプを持っています。複数のコントローラがアクセスする必要があるので、現在のビューオブジェクトをグローバル変数currentviewに保持しています。

ユーザーがビューを切り替えるたびに、(スレッドで実行されている)1つのコントローラがこのグローバル変数を変更します。しかし、私は継続的に私がビュー間急速に切り替えるたび

[currentview reloadData]; 

を用いcurrentviewは今、これらのスレッドおよびアプリケーションのクラッシュのうちcurrentviewobjectに問題があるリフレッシュ(いくつかのDBの操作に応じて)他のコントローラを有しています。 クラッシュレポートは、ライン

[currentview reloadData]; 

上aplicationがクラッシュし、このための何らかの解決策があることを示している??

答えて

1

は、同時に他のスレッドによってアクセスされることを防ぐことができます排他ロックを行います

@synchronized(self) 
{ 
    [currentview reloadData]; 
} 

これを使用してみてください。

+0

@synchronized(self)または@synchronized(currentview)のいずれかですか? –

+0

メソッドがこのステートメントを持つスレッドにある場合は、それは(self)でなければなりません。そうでなければ(currentview) – samfisher

+0

が動作しているようです。何かが起こったら私は再びあなたのドアをノックします:-) –

関連する問題