2016-10-02 11 views
7

Właśnie aktualizowane mój xcode8 do Swift 3 i dostałam ten błąd:Wartość typu 'DispatchQueue' nie ma elementu 'asynchroniczny' - Swift 3

Value of type 'DispatchQueue' has no member 'asynchronously' 

na tej linii:

DispatchQueue.main.asynchronously(execute: 

Oto cały fragment:

DispatchQueue.main.asynchronously(execute: { 

         //Display alert message with confirmation 
         let myAlert = UIAlertController(title: "Alert", message:messageToDisplay, preferredStyle: UIAlertControllerStyle.Alert); 




         let okAction = UIAlertAction(title:"OK", style:UIAlertActionStyle.Default){ 

          action in self.dismissViewControllerAnimated(true, completion:nil); 

         } 

         myAlert.addAction(okAction) 
         self.presentViewController(myAlert, animated:true, completion:nil); 
        }); 
       } 
      } 
      catch let error as NSError { 
       print(error.localizedDescription) 
      } 

     } 

     task.resume() 

} 
} 

Niedawno uaktualnienie do Swift 3 spowodowało wiele błędów, które zostały automatycznie naprawione, ale ten nie naprawi się sam i nie wiem, co robić.

+5

użycie DispatchQueue.main.async (...) – AleyRobotics

+0

@Yuri co masz na myśli? Czy to nie jest tak, jak została już zakodowana? –

+0

Nazwa 'asynchronicznie' była starszą wersją dla metody i została zmieniona na' async'. – OOPer

Odpowiedz

17

W wersji produkcyjnej Swift 3 i iOS 10 nie ma metody asynchronously. To tylko async:

DispatchQueue.main.async { 
    //Display alert message with confirmation 
    let alert = UIAlertController(title: "Alert", message: messageToDisplay, preferredStyle: .alert) 

    let okAction = UIAlertAction(title: "OK", style: .default) { action in 
     self.dismiss(animated: true) 
    } 

    alert.addAction(okAction) 
    self.present(alert, animated: true) 
}