【问题标题】:Swift: UnsafeMutablePointer.deinitialize fatal error with negative count when appending to arraySwift:UnsafeMutablePointer.deinitialize 附加到数组时带有负数的致命错误
【发布时间】:2016-10-17 07:17:50
【问题描述】:

下面的代码会产生这个错误(附加到exporters):

致命错误:UnsafeMutablePointer.deinitialize 计数为负数

    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 的其他帖子并未对这个问题提供太多说明,这种情况并非始终如一地发生。

有什么想法吗?

【问题讨论】:

    标签: ios swift video avassetexportsession


    【解决方案1】:

    我遇到了类似的错误,问题是由多个线程同时修改数组引起的。将附加调用包装在串行调度队列中为我解决了这个问题。

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

    【讨论】:

      【解决方案2】:

      我已经这样解决了这类问题:

      DispatchQueue.global(qos: .background).sync {
              //your code 
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-07
        • 1970-01-01
        • 2020-04-03
        • 2017-05-03
        • 2012-09-10
        • 1970-01-01
        • 2019-01-01
        • 2018-04-13
        相关资源
        最近更新 更多