ios 10内存问题导致UIImagePickerController崩溃
我得到随机内存崩溃,没有内存警告。我已将ios更新为10.0.2,将Xamarin更新为6.2。我按照建议添加了相机使用说明和照片库使用说明 我的FinishedPickingMedia回调中有以下代码ios 10内存问题导致UIImagePickerController崩溃,ios,xamarin,xamarin.ios,Ios,Xamarin,Xamarin.ios,我得到随机内存崩溃,没有内存警告。我已将ios更新为10.0.2,将Xamarin更新为6.2。我按照建议添加了相机使用说明和照片库使用说明 我的FinishedPickingMedia回调中有以下代码 public async override void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info) { try { // determine what was sel
public async override void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info)
{
try
{
// determine what was selected, video or image
bool isImage = false;
switch (info[UIImagePickerController.MediaType].ToString())
{
case "public.image":
isImage = true;
break;
case "public.video":
break;
}
if (isImage)
{
UIImage originalImage = info[UIImagePickerController.OriginalImage] as UIImage;
if (originalImage != null)
{
UIImageOrientation OrIn = originalImage.Orientation;
Debug.WriteLine("scaling image");
var originalImage1 = await Task.Run(() => ScaleAndRotateImage.ScaleAndRotateImageView(originalImage, OrIn));
if (originalImage1 != null)
{
var Data = originalImage1.AsJPEG(0.0f);
if (Data != null)
{
UIImage resizedImage = UIImage.LoadFromData(Data);
if (originalImage != null)
{
originalImage.Dispose();
originalImage = null;
}
originalImage1.Dispose();
originalImage1 = null;
Data.Dispose();
Data = null;
GC.Collect();
#if DEBUG
var Process1 = Process.GetCurrentProcess();
if (Process1 != null)
{
Debug.WriteLine(string.Format("memory allocated by FinishedPickingMedia = {0}", Process1.WorkingSet64));
}
#endif
camController.ShowPhoto(resizedImage);
}
if (info != null)
{
info.Dispose();
info = null;
}
GC.Collect();
}
}
}
}
catch (Exception ex)
{
Debug.WriteLine("Exception Occured in FinishedPickingMedia method due to " + ex.Message);
}
finally
{
// dismiss the picker
picker.DismissModalViewController(true);
picker.Dispose();
picker = null;
GC.Collect();
}
}
这可能是随机发生的,我的应用程序需要捕获我在互联网上研究的200多张照片(存档),这可能是iOS 10和此控件的一个问题在此功能开始时取消选取器。你可以在那之后处理图像。此函数的第一行应该是。。picker.DismissModalViewController(true)。那会解决问题的。谢谢,这解决了我的问题!!在该函数开始时关闭选择器。你可以在那之后处理图像。此函数的第一行应该是。。picker.DismissModalViewController(true)。那会解决问题的。谢谢,这解决了我的问题!!