UIImagePickerController Проблема утечки памяти, .camera хороша, но не для .photoLibrary
Вот код:
func PickLibraryTapped() {
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
let LibraryPhotoPicker = UIImagePickerController()
LibraryPhotoPicker.sourceType = .photoLibrary
LibraryPhotoPicker.delegate = self
LibraryPhotoPicker.allowsEditing = false
self.present(LibraryPhotoPicker, animated: true, completion: nil)
}
else
{
print("模拟其中无法打开照相机,请在真机中使用");
}
}
Метод делегата:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
let info = convertFromUIImagePickerControllerInfoKeyDictionary(info)
let pickedImage = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.originalImage)] as! UIImage
picker.dismiss(animated: true, completion:nil)
}
Ошибки: устройство выдает предупреждение, указывающее, что «утечка памяти» и «объект освобожден» (UIImagePickerController)
In case that UIImagePickerController should not be dealloced, override -willDealloc in UIImagePickerController by returning NO.
UPDATE !!!:
Проблема решена: проблема возникла из-за pod "MLeakFinder "был использован, после Unistall MLeakFinder всплывающее предупреждение исчезло.Код не содержит ошибок.
Напоминание: convertFromUIImagePickerControllerInfoKeyDictionary больше не используется в этом коде.Следует попробовать ниже:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let pickedImage = info[.originalImage] as? UIImage {
//Do something you need
}
self.dismiss(animated: true, completion: nil)
}