ios swift swift4 ios12

ios - UIImageJPEGRepresentation ha sido reemplazado por el método de instancia UIImage.jpegData(compressQuality:)



swift swift4 (3)

He intentado subir una foto a Firebase pero me está dando este error. Estaba funcionando antes de Xcode 10. Recibo este error:

''UIImageJPEGRepresentation'' ha sido reemplazado por el método de instancia ''UIImage.jpegData (compressQuality :)''

y no sé cómo usar esta función.

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) } } } }


El error le dice que a partir de iOS 12, la antigua función UIImageJPEGRepresentation ha sido reemplazada por el nuevo método jpegData en UIImage .

Cambio:

let imageData = UIImageJPEGRepresentation(image, 0.75)

a:

let imageData = image.jpegData(compressionQuality: 0.75)

Del mismo modo, el uso de UIImagePNGRepresentation ha sido reemplazado por pngData() .


Este error ocurrió en ios 12 y swift versión 4.2.

let image = UIImage() let imageData = UIImageJPEGRepresentation(image, 1) to: let image = UIImage() let imageData = image.jpegData(compressionQuality: 0.50)

Quieres cambiar así. Por favor, intente esto, está funcionando para mí.


Sólo reemplazar

guard let imageData = UIImageJPEGRepresentation(image, 0.75) else { return }

con:

guard let imageData = image.jpegData(compressionQuality: 0.75) else { return }