Al intentar utilizar AWSTransferutility para cargar fotos con Swift, aparece este error. Referencia ambigua al miembro asíncrono (ejecutar:) Busqué preguntas similares pero no encontré la solución.
func uploadS3Background (dict: NSMutableDictionary) { let transferUtility = AWSS3TransferUtility.default() let expression = AWSS3TransferUtilityUploadExpression() let completionHandler = { (task, error) -> Void in DispatchQueue.main.async(execute: { }) } transferUtility.uploadFile(URL(fileURLWithPath: dict.object(forKey: "url") as! String), bucket: "bucketname/images", key: (dict.object(forKey: "filename") as! String), contentType: "image/png", expression: expression, completionHandler).continueWith { (task) -> AnyObject! in if let error = task.error { print("Error: \(error.localizedDescription)") } if let _ = task.result { // Do something with uploadTask. } return nil; } }Fuera de un bloque de finalización, no obtengo el error de despacho en la cola principal.
Declare esto en su controlador de vista -
var completionHandler: AWSS3TransferUtilityUploadCompletionHandlerBlock?y luego usar
self.completionHandler = { (task, error) -> Void in DispatchQueue.main.async(execute: { }) }