ios - imagePickerController crashes when fetching photos from camera. From photo library works fine. Why? -


in swift app i'm allowing user add photo - either camera or photo library. has choice:

@ibaction func captureimage(_ sender: anyobject) {      let imagefromsource = uiimagepickercontroller()     imagefromsource.delegate = self     imagefromsource.allowsediting = false      let alertcontroller = uialertcontroller(         title: "what want do?",         message: "choose action.",         preferredstyle: .actionsheet)      let selectpictureaction = uialertaction(         title: "choose image gallery",         style: .default) { (action) -> void in              imagefromsource.sourcetype = uiimagepickercontrollersourcetype.photolibrary             self.present(imagefromsource, animated: true, completion: nil)     }     alertcontroller.addaction(selectpictureaction)      let capturefromcamera = uialertaction(     title: "capture photo camera",     style: .default) { (action) -> void in         imagefromsource.sourcetype = uiimagepickercontrollersourcetype.camera            self.present(imagefromsource, animated: true, completion: nil)        }     alertcontroller.addaction(capturefromcamera) } 

and have function:

func imagepickercontroller(_ picker: uiimagepickercontroller, didfinishpickingmediawithinfo info: [string : anyobject]) {      let imageurl          = info[uiimagepickercontrollerreferenceurl] as! nsurl     let imagename         = imageurl.lastpathcomponent     let documentdirectory = nssearchpathfordirectoriesindomains(.documentdirectory, .userdomainmask, true).first!     let photourl          = nsurl(fileurlwithpath: documentdirectory)     let localpath         = photourl.appendingpathcomponent(imagename!)     let image             = info[uiimagepickercontrolleroriginalimage]as! uiimage     let data              = uiimagepngrepresentation(image)         {         try data?.write(to: localpath!, options: data.writingoptions.atomic)     }     catch     {         // catch exception here , act accordingly      }     self.dismiss(animated: true, completion: {})      imageview.image = image     .     .     . 

when user chooses image gallery - works fine, when user takes photo - app crashes on line:

let imageurl          = info[uiimagepickercontrollerreferenceurl] as! nsurl 

with error:

fatal error: unexpectedly found nil while unwrapping optional value 

i need imageurl display image later on imageview - how can handle camera output here?

let imageurl = info[uiimagepickercontrollerreferenceurl] as! nsurl 

i need imageurl display image later on imageview - how can handle camera output here?

you wrong. not need it, , makes no sense ask it, image, definition, not in photo library — has no reference url.

the key want in situation uiimagepickercontrolleroriginalimage.

(indeed, in probability should never have been using uiimagepickercontrollerreferenceurl anything, since given uiimagepickercontrolleroriginalimage in both cases. that image expected use if purpose display in image view.)


Comments

Popular posts from this blog

java - SSE Emitter : Manage timeouts and complete() -

jquery - uncaught exception: DataTables Editor - remote hosting of code not allowed -

java - How to resolve error - package com.squareup.okhttp3 doesn't exist? -