SaveToAlbum 函数在我的 Xamarin iOS 应用程序中不起作用

Posted

技术标签:

【中文标题】SaveToAlbum 函数在我的 Xamarin iOS 应用程序中不起作用【英文标题】:SaveToAlbum function is not working in my Xamarin iOS app 【发布时间】:2016-01-08 18:29:47 【问题描述】:

大家好,我正在使用 Xamarin 开发一个 ios 应用程序,该应用程序打开相机并拍照,然后将其保存到相机胶卷,但是当我点击使用照片按钮时,应用程序崩溃

这是 VS2012 所说的导致崩溃的原因:

Unhandled Exception:

System.NullReferenceException: Object reference not set to an instance of an object

这是我的代码:

using Foundation;
using System;
using System.CodeDom.Compiler;
using UIKit;

namespace ToolBelt.iOS

    partial class CameraView : UIViewController

    
        public CameraView (IntPtr handle) : base (handle)
               
        



        public override void DidReceiveMemoryWarning ()
        
            // Releases the view if it doesn't have a superview.
            base.DidReceiveMemoryWarning ();

            // Release any cached data, images, etc that aren't in use.
        

        public override void ViewDidLoad ()
        
            base.ViewDidLoad ();


            //UIPopoverController popover = new UIPopoverController (ctrl);

            // Perform any additional setup after loading the view, typically from a nib.
        




        public override void ViewDidAppear(bool animated)
        
            base.ViewDidAppear(animated);

            if (imageView.Image == null)
            
                UIImagePickerController picker = new UIImagePickerController();

                picker.SourceType = UIImagePickerControllerSourceType.Camera;
                picker.Delegate = this;
                PresentViewController(picker, true, null);
            
        

        [Export("imagePickerController:didFinishPickingImage:editingInfo:")]
        public void FinishedPickingImage(UIKit.UIImagePickerController picker, UIKit.UIImage image, Foundation.NSDictionary editingInfo)
        
            var someImage = UIImage.FromFile("someImage.jpg");
            someImage.SaveToPhotosAlbum((pic, error) =>
                
                    var o = pic as UIImage;
                    Console.WriteLine("error:" + error);
                );
            DismissViewController(true, null);

        
    



我做错了什么?

任何帮助都会很棒

提前致谢!

【问题讨论】:

var someImage = UIImage.FromFile("someImage.jpg"); @Gusman 感谢您的回复,我在项目中没有名为 someImage.jpg 的图像,有任何解决此问题的想法吗? 是的,您必须使用选择器返回的图像,在您的情况下是传递给名为“image”的函数的 UIImage。 【参考方案1】:

您正在尝试使用不存在的硬编码图像,而不是使用用户选择的图像。

将您的代码更改为:

    [Export("imagePickerController:didFinishPickingImage:editingInfo:")]
    public void FinishedPickingImage(UIKit.UIImagePickerController picker, UIKit.UIImage image, Foundation.NSDictionary editingInfo)
    
        image.SaveToPhotosAlbum((pic, error) =>
            
                Console.WriteLine("error:" + error);
            );
        DismissViewController(true, null);

    

【讨论】:

另一个问题是在我拍照后相机并没有消失它不断重新打开关于如何关闭它的任何想法?

以上是关于SaveToAlbum 函数在我的 Xamarin iOS 应用程序中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

我是 xamarin 的新手,想在我的 xamarin.forms 项目中实现对话框

CLLocation 在我的 xamarin.ios 项目中为 Null

我找不到如何在我的 xamarin 项目中使用 json 格式

如何在我的 Xamarin.Forms 应用程序的 UWP 版本中显示图像

Xamarin.İOS 单击时隐藏键盘

是否可以使用 xamarin.form 在我的应用程序中打开另一个应用程序?