首页 文章

此类不是密钥值编码兼容的密钥

提问于
浏览
0

***由于未捕获的异常'NSUnknownKeyException'终止应用程序,原因:'[<Ctrl 0x796991d0> valueForUndefinedKey:]:此类与密钥UIImagePickerControllerReferenceURL不符合密钥值编码 .

@IBAction func btnReviewAction(sender : UIButton) {

    imagePicker.delegate = self
    imagePicker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)!
    imagePicker.modalPresentationStyle = UIModalPresentationStyle.popover

    imagePicker.preferredContentSize = CGSize(width: 1000, height: 400)
    imagePicker.allowsEditing = false
    imagePicker.isEditing = false

    appDel!.navController?.present(imagePicker, animated: true, completion: nil)

    imagePicker.popoverPresentationController?.sourceView = sender
    imagePicker.popoverPresentationController?.sourceRect = CGRect(x: 0, y: 0, width: sender.frame.size.width, height: sender.frame.size.height)
    isCaptureImage = false

}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    var mediaType: String = ""
    mediaType = info[UIImagePickerControllerMediaType] as! String
    if (mediaType == (kUTTypeImage as String)) {
        if isCaptureImage == false {
            let library = ALAssetsLibrary()

            library.asset(for: value(forKey: UIImagePickerControllerReferenceURL) as! URL!, resultBlock: { (asset) -> Void in

                let original: ALAssetRepresentation? = asset?.defaultRepresentation()

                let myimag = UIImage(cgImage: original?.fullScreenImage() as! CGImage, scale: CGFloat((original?.scale())! as Float), orientation: UIImageOrientation(rawValue: 0)!)
                self.imageAddView.image = self.resizeImage(image: myimag, newWidth: 600)

            }, failureBlock: { (error) -> Void in
                print("Failed to load captured image.")

            })

            picker.dismiss(animated: true, completion: { _ in })
        }

    }
 }

在这里,我想重定向PhotoGallery . 并在 UIImmage 上设置图像,但我上面有错误链接 .

1 回答

  • 0

    我不知道你为什么要使用ALAssetsLibrary,如果你只是想让图像尝试这个...

    public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    
        if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {            
            self.imageAddView.image = self.resizeImage(image: image, newWidth: 600)
        }
    
        dismiss(animated: true, completion: nil)
    }
    

相关问题