从相机胶卷中选择一张后图像不显示,将输入的图像存储在数组中 swift

Image not displaying after picking one out from camera roll, store inputted image in array swift

好的。首先,对于这么长的问题,我深表歉意。我的问题:我有代码可以在相机胶卷中搜索图像或拍摄一张,然后将其存储在 UIImage 中。但是,它没有在 NewPersonViewController 上显示图像。其次,我想将保存的图像 image 附加到我创建的空数组 UIImages 中,但我不知道该怎么做。我的代码片段:

var image:UIImage?
var Images:[UIImage] = []
//new snippet
Images.append(image!)
//another snippet
func updateDisplay(){
        if let mediaType = lastChosenMediaType{
            if mediaType == kUTTypeImage as NSString{
                imageView.image = image!
                imageView.hidden = false
                if moviePlayerController != nil{
                    moviePlayerController!.view.hidden = true
                }
            }else if mediaType == kUTTypeMovie as NSString{
                if moviePlayerController == nil{
                    moviePlayerController = MPMoviePlayerController(contentURL: movieURL)
                    let movieView = moviePlayerController!.view
                    movieView.frame = imageView.frame
                    movieView.clipsToBounds = true
                    view.addSubview(movieView)
            }
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    lastChosenMediaType = info[UIImagePickerControllerMediaType] as? String
    if let mediaType = lastChosenMediaType{
        if mediaType == kUTTypeImage as NSString{
            image = info[UIImagePickerControllerEditedImage] as? UIImage
        }
        else if mediaType == kUTTypeMovie as NSString{
            movieURL = info[UIImagePickerControllerMediaURL] as? NSURL
        }
    }
    picker.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
    picker.dismissViewControllerAnimated(true, completion: nil)
}
    }

Images.append(image!) 编译,但出现此错误:fatal error: unexpectedly found nil while unwrapping an Optional value.

非常感谢 :) 旁注:我是 swift 的新手。

当你得到这样的图像时,尝试将图像附加到你的数组中。

 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    lastChosenMediaType = info[UIImagePickerControllerMediaType] as? String
    if let mediaType = lastChosenMediaType{
       if mediaType == kUTTypeImage as NSString{
          let pickImg = info[UIImagePickerControllerEditedImage] as? UIImage
             Images.append(pickImg)
             imageView.image = pickImg //set the imageView image.
      }
      else if mediaType == kUTTypeMovie as NSString{
          movieURL = info[UIImagePickerControllerMediaURL] as? NSURL
      }
  } 
 picker.dismissViewControllerAnimated(true, completion: nil)
}

这是从我的项目中提取的有效代码。

 var newImage : UIImage?
 var Images:[UIImage] = []

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {

    let mediaType = info[UIImagePickerControllerMediaType] as String
    if mediaType == "public.image" {
        // Media is an image
        newImage = info[UIImagePickerControllerOriginalImage] as UIImage!
        println("update imgPreview")
        imgPreview.image = newImage
        Images.append(newImage!)

    } else if mediaType == "public.movie" {

    }

    self.dismissViewControllerAnimated(true, completion: nil)
}

我是这样调用图片选择器的

func pickPhoto() {

    let imagePicker = UIImagePickerController()
    imagePicker.delegate = self
    imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
    imagePicker.mediaTypes = [kUTTypeImage as NSString]
    //imagePicker.allowsEditing = true

    self.presentViewController(imagePicker, animated: true,
        completion: nil)
}