NSMutableArray 和同步

NSMutableArray and synchronization

我正在像队列一样使用 NSMutableArray。

想象一下这个应用程序就像 Tinder,当一堆卡片低于某个数字时,我会获取新数据。获取数据时,它们被添加到 NSMutableArray 的末尾。滑动时,我删除了 fron 对象。

我应该同步这些操作吗?

这是示例代码:

//.. fetching from ParseAPI
  [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (!error) {
           //....get object
           [_cards addObject:object];
        }

和滑动的委托方法。

- (MyCustomView *)popViewWithFrame:(CGRect)frame {
...
[self.cards removeObjectAtIndex:0];
}

由于入队总是在最后发生,而出队在前面,我是否应该在这些访问之间提供任何锁或同步?

如果是,我应该怎么做?

我想我应该在一些用于调试的 NSLog 上提供一些同步。

All Parse completion blocks should execute on the main thread.

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    // main thread here
}];

所以完成块是在主线程上执行的,这意味着你不需要任何同步。

如果您在一个线程上修改 NSArray 并从另一个线程访问或修改 NSArray,则访问必须同步。如果您在主线程或同一个串行队列上访问和修改它,没有问题。