4

我对多线程编程和可可很陌生。

我需要一把锁来访问/修改NSMutableArrayiVar。最简单的方法是什么?

当我在这里的时候,你们有一些关于使用 Obj-c/Cocoa 进行多线程编程的读物吗?谢谢。

4

2 回答 2

10

使用@synchronized块:

@synchronized(MyArray)
{
    // thread safe code
}

Xcode 有时无法识别此块,但相信我,它有效!

有关更多信息,您可以阅读这篇文章。

于 2012-07-05T16:03:16.973 回答
1

另一种方法是使用 GCD 和串行队列。

对于您的 NSArray 属性,写入使用私有串行队列的访问器。设置并从后备存储中获取值。由于串行队列是先进先出的,并且将顺序运行块,这提供了对属性的线程安全访问。

于 2012-07-05T16:36:59.700 回答