Курс 2 урок 43 Удаляется только один ресторан


#1

Сделав все как в уроке при удалении ресторана вылетает такая ошибка:

2016-11-11 20:11:22.037 Eateries[10052:845342] *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.5.2/UITableView.m:1610
2016-11-11 20:11:22.059520 Eateries[10052:845342] [error] error: Serious application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:. Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (1) must be equal to the number of rows contained in that section before the update (1), plus or minus the number of rows inserted or deleted from that section (0 inserted, 1 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out). with userInfo (null)

В файте представленном под видео тоже самое…
Ресторан при этом удаляется, но второй ресторан не удаляется(не выдвигается кнопка удалить).
Как исправить ошибку?


#2

Да, я случайно продублировал одну и ту же строку:

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    
    
    let share = UITableViewRowAction(style: .default, title: "Поделиться") { (action, indexPath) in
      let defaultText = "Я сейчас в " + self.restaurants[indexPath.row].name!
      if let image = UIImage(data: self.restaurants[indexPath.row].image as! Data) {
        let activityController = UIActivityViewController(activityItems: [defaultText, image], applicationActivities: nil)
        self.present(activityController, animated: true, completion: nil)
      }
    }
    
    let delete = UITableViewRowAction(style: .default, title: "Удалить") { (action, indexPath) in
      self.restaurants.remove(at: indexPath.row)
      //tableView.deleteRows(at: [indexPath], with: .fade)
      if let context = (UIApplication.shared.delegate as? AppDelegate)?.coreDataStack.persistentContainer.viewContext {
        
        let objectToDelete = self.fetchResultsController.object(at: indexPath)
        context.delete(objectToDelete)
        
        do {
          try context.save()
        } catch {
          print(error.localizedDescription)
        }
      }
    }
    
    share.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
    delete.backgroundColor = #colorLiteral(red: 0.9254902005, green: 0.2352941185, blue: 0.1019607857, alpha: 1)
    return [delete, share]
  }

Просто удалите ту строку, которую я закомментировал и все будет работать хорошо.


#3

Все заработало, спасибо!


#4

Вот начинал же смотреть урок, помнил же про эту сноску под видео, что строку удалить надо. Нет, два часа код лопатил, потом форум и вот эта тема))))