Получение этого сообщения об ошибке Swift 4.2: член экземпляра «jpegData» не может использоваться для типа «UIImage»; Вы хотели вместо этого использовать значение этого типа?

func uploadGoogleProfileImage(_ image:UIImage, completion: @escaping ((_ url:URL?)->())) {
    guard let uid = Auth.auth().currentUser?.uid else { return }
    let storageRef = Storage.storage().reference().child("userGoogleImage/\(uid)")

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

    let metaData = StorageMetadata()
    metaData.contentType = "image/jpg"

    storageRef.putData(imageData, metadata: metaData) { metaData, error in
        if error == nil, metaData != nil {

            storageRef.downloadURL{ url, error in
                completion(url)
            }
        } else {
            // failed
            completion(nil)
        }
    }
}

Ошибка отображается в строке, где используется UIImage.jpegData. Не знаете, почему я получаю эту ошибку?


person Tyrek Clarke    schedule 05.12.2018    source источник
comment
Вы хотите ... = image.jpegData....   -  person rmaddy    schedule 05.12.2018


Ответы (1)


jpegData был изменен, чтобы быть методом экземпляра, а не методом класса. Так меняется

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

to

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

будет делать свое дело.

person Florian Marcu    schedule 05.12.2018