CGImageDestinationFinalize терпит неудачу, иногда падает - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь сохранить некоторые фотографии после захвата.Но при сохранении CGImageDestinationFinalize происходит сбой и в основном происходит сбой.

let cgImage: CGImage...

let data: CFMutableData = CFDataCreateMutable(nil, 0)
// Older phones can't save to HEIC, so falling back to JPEG.
let destination
            = CGImageDestinationCreateWithData(data, "public.heic" as CFString, 1, nil)
              ?? CGImageDestinationCreateWithData(data, kUTTypeJPEG as CFString, 1, nil)!

CGImageDestinationAddImage(destination, cgImage, metadata)
NSLog(log: "Check #1") // This line executes
let _ = CGImageDestinationFinalize(destination) // Crashes here (fails/ returns false)
NSLog(log: "Check #2") // not executed
PHPhotoLibrary.save(photo: data as Data, success: success)

Вылетает с:

Сообщение от отладчика: прекращено из-за проблемы с памятью

Я протестировал его на iPhone7 + & iPhoneXS , все работает.Но сбой на моем iPhoneX .Все они работают под управлением iOS12.2 .В то время как этот ответ говорит, что это была известная проблема в iOS 9, которая была решена в iOS 10 .

Она не сообщает причину или не отслеживает стек,Есть идеи, что может быть не так?

...