2012-01-09 68 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