как закидывать ошибки в замыкание в swift?
Пожалуйста, посмотрите на следующий код:
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
}
сообщение об ошибке из Xcode выглядит следующим образом: Неверное преобразование из функции выброса типа '(UITableViewRowAction, NSIndexPath) throws -> Void' в тип функции без выброса '(UITableViewRowAction, NSIndexPath) -> Void'
Я знаю, что проблема в managedObjectContext.save () будет выдавать ошибки, и это не разрешено в обработчике завершения. Я нашел несколько статей в блоге, где они изменили параметры замыкания, чтобы сделать обработку ошибок в замыкании работоспособной. Хотя здесь определение функции дано Apple, так как я могу исправить эту проблему? Большое спасибо! : D