【问题标题】:Issue with handling variables in threads在线程中处理变量的问题
【发布时间】:2012-01-09 06:29:44
【问题描述】:

我正在开发一个显示文件系统内容的应用程序。我有两种类型的显示器

1)大纲视图

2)IKImagebrowserView

用户可以在视图之间切换。我在全局变量currentview 中维护当前视图对象,因为多个控制器需要访问它。

现在,每当用户切换视图时,一个控制器(在线程上运行)会更改此全局变量。但是我有另一个控制器(取决于某些 DB 操作)使用

不断刷新当前视图
[currentview reloadData];

现在,每当我在视图之间快速切换时,这些线程中的 currentviewobject 都会出现问题,并且应用程序会崩溃。 崩溃报告显示应用程序崩溃上线

[currentview reloadData];

有什么解决办法吗??

【问题讨论】:

    标签: objective-c multithreading cocoa mutex reloaddata


    【解决方案1】:

    尝试使用

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

    这将产生一个排他锁,防止其他线程同时访问它。

    【讨论】:

    • 如果方法在有这个语句的线程中,那么它应该是 (self) 否则 (currentview)
    • 似乎正在工作。如果有什么事我会再次敲你的门:-)
    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2010-10-02
    相关资源
    最近更新 更多