Мне нужна помощь для сохранения изображений в облаке - PullRequest
1 голос
/ 19 июня 2019

В моем приложении пользователь может выбрать изображение в своей галерее и сохранить его в UIMAGEVIEW, теперь проблема в том, что когда я сохраняю это изображение в cloudkit, появляется следующая ошибка «Вызов может скинуть, но он не отмечен»с «попытаться» и ошибка не обрабатывается "

 @IBAction func Save(_ sender: Any) {
    let codig = code.text
    let precio = price.text
    let imagen = imageCover.image

    let record = CKRecord(recordType: "Productos", zoneID: zona.zoneID)
        record.setObject(codig as __CKRecordObjCValue?, forKey: "code")
        record.setObject(precio as __CKRecordObjCValue?, forKey: "costo") 
        let mngr = FileManager.default
        let dir = mngr.urls(for: .documentDirectory, in: .userDomainMask)
        let file = dir[0].appendingPathComponent("myimage").path

        imagen?.jpegData(compressionQuality: 0.5)?.write(to: file as! URL)
        let imgURL = NSURL.fileURL(withPath: file)
        let imageAsset = CKAsset(fileURL: imgURL)

        record.setObject(imageAsset, forKey: "imagecover")

        self.navigationItem.backBarButtonItem?.isEnabled = false
        database.save(record) { (record, error) in
            DispatchQueue.main.async {
            self.navigationItem.backBarButtonItem?.isEnabled = true
            if let error = error {
                print("Error \(error.localizedDescription)")
            } else {
                print("Save")
                self.navigationController?.popViewController(animated: true)
            }
        }
    }

1 Ответ

0 голосов
/ 21 июня 2019

Ваша проблема в следующей строке:

imagen?.jpegData(compressionQuality: 0.5)?.write(to: file as! URL)

Как вы можете видеть в документации (https://developer.apple.com/documentation/foundation/data/1779858-write) функция write(to:) может выдать ошибку. Вам нужно обработать ошибку, либо проигнорировав ее

try? <function that throws error>

или перехватывая его с помощью блока do..catch:

do {
   try <function that throws error>
} catch {
   // Handle error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...