我有一个对象的NSMutableSet,我在主线程上的几个点上进行了突变。虽然有时在后台线程中会枚举此设置。缺少使用一堆布尔值来管理状态的方法,有没有什么好办法让任何突变等待,该集合当前是否应该枚举?

提前致谢。

最佳答案

NSMutableSet不是线程安全的。您不能破解它以确保线程安全。

如果您希望副本在后台不发生变化以进行检查,请在主队列上使用copy并将其传递回去。这将比任何其他方法快很多。

否则,您必须将对其的所有访问都包装在互斥锁中。对集合本身进行@synchronize是最直接的方法。

10-08 07:00
查看更多