2012-01-09 71 views
0

我正在開發一個用於顯示文件系統內容的應用程序。我有兩個類型的顯示器處理線程變量的問題

1)OutlineView

2)IKImagebrowserView

用戶可以在視圖之間進行切換的。由於多個控制器需要訪問它,因此我將當前視圖對象保留在全局變量currentview中。

現在每當用戶切換視圖時,一個控制器(運行在一個線程上)就會改變這個全局變量。但是我有(取決於一些DB操作)另一個控制器連續刷新使用

[currentview reloadData]; 

現在,每當我在視圖之間進行快速切換,還有與這些線程和應用程序崩潰之中currentviewobject的問題currentview。 崩潰報告顯示,上線

[currentview reloadData]; 

的aplication崩潰對此有任何解決方案?

回答

1

嘗試使用

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

這將使獨佔鎖,這將阻止它通過同時其他線程訪問。

+0

它應該是@synchronized(self)還是@synchronized(currentview)??? – 2012-01-09 06:48:48

+0

如果該方法在具有此語句的線程中,那麼它應該是(self)否則(currentview) – samfisher 2012-01-09 06:50:57

+0

似乎正在工作。我會再次敲你的門,如果發生什麼事情:-) – 2012-01-12 09:30:08