我对多线程编程非常陌生。可可。
我需要一个锁才能访问/修改NSMutableArray
iVar。什么是最简单的方法呢?
虽然我在这里,你们有没有关于Obj-c / Cocoa的多线程编程的阅读? 谢谢。
答案 0 :(得分:10)
使用@synchronized
块:
@synchronized(MyArray)
{
// thread safe code
}
Xcode有时无法识别此块,但请相信我,它有效!
有关详细信息,请参阅this文章。
答案 1 :(得分:1)
另一种方法是使用GCD和串行队列。
对于NSArray属性,编写使用专用串行队列的访问器。设置,并从后备存储中获取值。由于串行队列是FIFO,并且将按顺序运行块,因此可以提供对该属性的线程安全访问。