como lançar erros em um fechamento em rápida?
Por favor, observe o seguinte código:
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete", handler: {
(action : UITableViewRowAction, indexPath : NSIndexPath) -> Void in
if let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext{
let restaurantToDelete = self.fetchResultController.objectAtIndexPath(indexPath) as! Restaurant
managedObjectContext.deleteObject(restaurantToDelete)
// Saving managedObjectContext instance, and catch errors if it fails
do {
try managedObjectContext.save()
} catch let error as NSError {
print("Error: \(error.localizedDescription)")
}
}
})
return deleteAction
}
a mensagem de erro do Xcode é: Conversão inválida da função de arremesso do tipo '(UITableViewRowAction, NSIndexPath) lança -> Vazio' para o tipo de função de não arremesso '(UITableViewRowAction, NSIndexPath) -> Vazio'
Eu sei que o problema é managedObjectContext.save () lançará erros e isso não é permitido no manipulador de conclusão. Encontrei alguns artigos de blog em que eles modificaram os parâmetros de fechamento para tornar viável a manipulação de erros em um fechamento. Enquanto aqui a definição da função é dada pela apple, como posso corrigir esse problema? Muito obrigado! : D