Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios 10内存问题导致UIImagePickerController崩溃_Ios_Xamarin_Xamarin.ios - Fatal编程技术网

ios 10内存问题导致UIImagePickerController崩溃

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

我得到随机内存崩溃,没有内存警告。我已将ios更新为10.0.2,将Xamarin更新为6.2。我按照建议添加了相机使用说明和照片库使用说明

我的FinishedPickingMedia回调中有以下代码

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)。那会解决问题的。谢谢,这解决了我的问题!!