2016-10-17 23 views
8

Đoạn code dưới đây tạo ra lỗi này (phụ thêm để exporters):Swift: UnsafeMutablePointer.deinitialize lỗi nghiêm trọng với số lượng tiêu cực khi phụ thêm vào mảng

fatal error: 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) 

Các bài viết khác trên StackOverflow về UnsafeMutablePointer.deinitialize không đổ nhiều ánh sáng về vấn đề, điều này không xảy ra một cách nhất quán.

Bất kỳ ý tưởng nào?

Trả lời

15

Tôi đã gặp lỗi tương tự, vấn đề là do nhiều chủ đề sửa đổi mảng cùng một lúc. Gói các cuộc gọi nối thêm trong một hàng đợi công văn nối tiếp đã giải quyết nó cho tôi.

let serialQueue = DispatchQueue(label: "myqueue") 

    serialQueue.sync { 
     exporters.append(exporter) 
    } 
Các vấn đề liên quan