呈现UIImagePickerController后应用程序崩溃

问题描述:

我试图提出一个UIImagePickerController为了从相册中获取图像,我正面临一个奇怪的行为。呈现UIImagePickerController后应用程序崩溃

如果我在viewDidLoad中启动图像选择器,它的工作原理:

class CaptureImageViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

@IBOutlet weak var imageView: UIImageView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    initPicker() 
} 

func initPicker() { 
    let picker = UIImagePickerController() 
    picker.delegate = self 
    picker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary 
    presentViewController(picker, animated: true, completion: nil) 
} 

func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]!) { 
    dismissViewControllerAnimated(true, completion: nil) 
    imageView.image = info["UIImagePickerControllerOriginalImage"] as UIImage 
} 

func imagePickerControllerDidCancel(picker: UIImagePickerController!) { 
    dismissViewControllerAnimated(true, completion: nil) 
} 

} 

但是,如果我把initPicker()@IBAction,并从一个按钮来调用它,点击它后,图像选择器出现,但突然该应用程序与此错误崩溃:

CaptureImageViewController respondsToSelector:]: message sent to deallocated instance 0x7960b1e0 

我正在模拟器与XCode测试版6

任何想法?

+0

你可以发布IBAction的代码吗? – Akaino 2014-08-29 10:41:36

+0

@Aainain,它的代码完全一样,但是将** initPicker()**转换为** viewDidLoad()**会消失。另外,** initPicker()**函数定义成为** @ IBAction func initPicker(){...} ** – dlao 2014-08-29 14:39:06

在测试了一堆不成功的方法之后,我改变了函数签名,并且它可以工作!

看起来init前缀混淆了Swift。

我正在寻找一些在论坛和官方文档相关的话题,但我没有得到任何东西。

也许是一个错误?

尝试声明的对象UIImagePickerController作为实例级别参数而不是函数内。

+0

我已经测试过没有成功:( – dlao 2014-08-29 09:39:57