Geo*_*nts 11 uiimagepickercontroller swift swift4.2
试图将聊天客户端从swift 4传递到swift 4.2并且使用选择器我发现了麻烦.
UIImagePickerControllerEditedImage // 无法使用索引类型为"UIImagePickerController.InfoKey"的类型'[String:Any]'下标
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
self.userProfileImage.contentMode = .scaleAspectFit
self.userProfileImage.image = pickedImage
}
picker.dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
Ash*_*lls 19
方法签名已更改为
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
您应该看到func名称的警告消息
实例方法'imagePickerController(:didFinishPickingMediaWithInfo :)'几乎匹配协议'UIImagePickerControllerDelegate'的可选要求'imagePickerController(:didFinishPickingMediaWithInfo :)'
候选人有非匹配类型'(UIImagePickerController,[String:Any]) - >()'
将'imagePickerController(_:didFinishPickingMediaWithInfo :)'移动到另一个扩展名以使此警告静音
将'imagePickerController(_:didFinishPickingMediaWithInfo :)'私有化以使此警告无声
要求'imagePickerController(_:didFinishPickingMediaWithInfo :)'在这里声明(UIKit.UIImagePickerControllerDelegate)
在Swift 4.2中,imagePickerController委托方法有所改变.请查看以下代码.
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
var selectedImage: UIImage?
if let editedImage = info[.editedImage] as? UIImage {
selectedImage = editedImage
self.profileImage.image = selectedImage!
picker.dismiss(animated: true, completion: nil)
} else if let originalImage = info[.originalImage] as? UIImage {
selectedImage = originalImage
self.profileImage.image = selectedImage!
picker.dismiss(animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
这肯定会起作用.
小智 5
像这样
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
picker.dismiss(animated: true, completion: nil)
let image = info[UIImagePickerController.InfoKey.originalImage]! as! UIImage
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14374 次 |
| 最近记录: |