ios - UIImageJPEGRepresentation 已被实例方法 UIImage.jpegData(compressionQuality:) 替换
问题描述
我试图将照片上传到 Firebase,但它给了我这个错误。它在 Xcode 10 之前工作。我收到此错误:
'UIImageJPEGRepresentation' 已被实例方法 'UIImage.jpegData(compressionQuality:)' 替换
我不知道如何使用这个功能。
import UIKit
import Firebase
class SignUpViewController:UIViewController {
@IBOutlet weak var profileImageView: UIImageView!
@IBOutlet weak var tapToChangeProfileButton: UIButton!
var continueButton:RoundedWhiteButton!
var imagePicker:UIImagePickerController!
override func viewDidLoad() {
super.viewDidLoad()
continueButton.addTarget(self, action: #selector(handleSignUp), for:
.touchUpInside)
let imageTap = UITapGestureRecognizer(target: self, action:
#selector(openImagePicker))
profileImageView.isUserInteractionEnabled = true
profileImageView.addGestureRecognizer(imageTap)
profileImageView.layer.cornerRadius = profileImageView.bounds.height / 2
profileImageView.clipsToBounds = true
imagePicker = UIImagePickerController()
imagePicker.allowsEditing = true
imagePicker.sourceType = .photoLibrary
imagePicker.delegate = self
}
func uploadProfileImage(_ image:UIImage, completion: @escaping ((_ url:URL?)->())) {
guard let uid = Auth.auth().currentUser?.uid else { return }
let storageRef = Storage.storage().reference().child("user/\(uid)")
guard let imageData = UIImageJPEGRepresentation(image, 0.75) else { return }
let metaData = StorageMetadata()
metaData.contentType = "image/jpg"
storageRef.putData(imageData, metadata: metaData) { metaData, error in
if error == nil, metaData != nil {
if let url = metaData?.downloadURL() {
completion(url)
} else {
completion(nil)
}
// success!
} else {
// failed
completion(nil)
}
}
}
}
解决方案
该错误告诉您,从 iOS 12 开始,旧UIImageJPEGRepresentation
功能已替换jpegData
为UIImage
.
改变:
let imageData = UIImageJPEGRepresentation(image, 0.75)
到:
let imageData = image.jpegData(compressionQuality: 0.75)
同样,使用UIImagePNGRepresentation
已替换为pngData()
。
推荐阅读
- python - 通过简单的数学计算问题理解 python 多线程,如何在 python 中更快地编写代码
- systemd - ExecStartPost 脚本是一个无限循环脚本 - 有可能吗?
- hyperledger-fabric - 如何在超级账本结构中添加 raft 而不是 kafka?
- tcl - 如何删除单个字母/数字
- d - Tkd 小部件找不到行和列选项
- laravel - 向所有路由添加变量
- java - 如何更改底线 EditText 颜色?
- bigdata - 如何使用历史数据集丰富 Flink DataStream
- javascript - 有什么方法可以使用动态锚标记保存图像 url?
- php - Wordpress:允许的内存大小已用尽