SaveToAlbum 函数在我的 Xamarin iOS 应用程序中不起作用
SaveToAlbum function is not working in my Xamarin iOS app
大家好,我正在使用 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);
}
}
}
我做错了什么?
任何帮助都会很棒
提前致谢!
您正在尝试使用不存在的硬编码图像,而不是使用用户选择的图像。
将您的代码更改为:
[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);
}
大家好,我正在使用 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);
}
}
}
我做错了什么?
任何帮助都会很棒
提前致谢!
您正在尝试使用不存在的硬编码图像,而不是使用用户选择的图像。
将您的代码更改为:
[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);
}