私はこの問題を今数週間苦労しています。私はすべての場所でオンラインを見ており、この2つの部外リンク以外に、この問題に近い何も見つかりませんでした。UIImagePickerControllerは、起動後および撮影中にメモリがリークしています。 100枚以上の写真を撮った後にアプリがクラッシュする
https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview/issues/200
https://issues.apache.org/jira/browse/CB-11784
しかし、それらは、同じ環境を使用していないと実際の解決策はありません問題にここで
は私がimagePickerを起動し、写真を撮った直後のXcode 8.3を使用して、私のインストのスクリーンショットです:ここで
はimagePickerに関連するコードです:
//initializer on my class
var imagePicker = UIImagePickerController()
//imagepicker setup on ViewDidLoad()
imagePicker.delegate = self
imagePicker.allowsEditing = false
imagePicker.mediaTypes = [kUTTypeImage as String]
if UIImagePickerController.isSourceTypeAvailable(.camera) {
imagePicker.sourceType = .camera
}
else {
print("Sorry this app only supports camera")
}
//function to start picker when click on button
func startPicker(){
self.present(imagePicker, animated: false, completion: nil)
}
//delegate functions
func imagePickerControllerDidCancel(_ picker: UIImagePickerController)
{
imagePicker.dismiss(animated: false, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
{
//display photo on view
imagePicker.dismiss(animated: false, completion: nil)
}
これはIOSのバグですか、このメモリリークを取り除くには離れていますか?
あなたは一人ではありません。同様の最小限のコードを使って、iOS 10.3.3とXcode 8.3.3でこれを再現できます。 「他のプロセス」メモリ使用量は、すべてのシステムメモリが使い果たされるまで徐々に増加します。アプリケーションが「接続が失われました」というメッセージが表示され、アプリケーションで例外が発生しなくなります(UIImageViewControllerコード内にリークがあるようです)。 – davidgoli
関連:https://stackoverflow.com/questions/42249570/frequently-camera-capture-crashing-the-app-without-any-clue – davidgoli
@davidgoliのリンクをありがとう、私は私がそうではないことを知ってうれしい唯一。私は、単に私のアプリで画像ビューを持つことによってこの問題を再現することができます。とにかく40〜50枚の写真が撮られた後にクラッシュする。それは非常に迷惑で、私はまだこれで苦労しています。 – Fidel