从非空NSMutableArray中删除对象会导致偶尔崩溃

时间:2017-01-17 08:36:52

标签: ios objective-c

我有一个NSMutableArray(正确初始化),充当缓冲区添加对象并删除第一个对象。我在大多数情况下都能正常工作,而且在测试时总是如此,但我偶尔会收到用户的崩溃报告,例如。

[__NSArrayM removeObjectsInRange:]: range {0, 1} extends beyond bounds for empty array'

应用程序中的相关代码如下所示

[self.peakArray addObject:@(peak)];
if([self.peakArray count]>0){
    [self.peakArray removeObjectAtIndex:0];
}

代码位于串行调度队列中的AVCaptureSession中的CaptureOutput:didOutputSampleBuffer中。该数组不会在其他任何地方迭代或更新。如何在删除对象行崩溃?如果计数为零,则该行不应执行?

(注意:当到达代码的这一部分时,数组通常包含超过一百个对象)

0 个答案:

没有答案