Swift:UnsafeMutablePointer.deinitialize在附加到数组时带有负数的致命错误

下面的代码生成此错误(附加到exporters ):

致命错误:UnsafeMutablePointer.deinitialize with negative count

  var exporters = [AVAssetExportSession]() let exporter = AVAssetExportSession(asset: mainComposition, presetName: AVAssetExportPresetHighestQuality)! exporter.videoComposition = videoComposition exporter.outputFileType = AVFileTypeMPEG4 exporter.outputURL = exportURL exporter.shouldOptimizeForNetworkUse = true exporters.append(exporter) 

StackOverflow上关于UnsafeMutablePointer.deinitialize的其他post并没有对这个问题UnsafeMutablePointer.deinitialize ,这种情况不会持续发生。

有任何想法吗?

我有一个类似的错误,问题是由多个线程同时修改数组引起的。 在串行调度队列中包装追加调用解决了它。

  let serialQueue = DispatchQueue(label: "myqueue") serialQueue.sync { exporters.append(exporter) }