亲爱的团队,
我正在实现TableView更新,通过委托方法。
我还键入了更新单元格的所有代码,也可以添加弱者即将开始。

但我有这个问题。
当澳大利亚更多赢得胜利时,它不会向伊朗替代伊朗,但澳大利亚之前仍然成为伊朗的第二名,第一个仍然保持伊朗(3Wins)。这似乎是伊朗的胜利,但第一个地方没有与澳大利亚更新(3胜)

当我再次运行应用程序时,底层数据会发生变化。它按预期显示正确的顺序。 Aus(3胜)然后伊朗(3胜)

extension ViewController: NSFetchedResultsControllerDelegate {
  func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
      tableView.beginUpdates()
  }
  
  func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>,
                  didChange anObject: Any,
                  at indexPath: IndexPath?,
                  for type: NSFetchedResultsChangeType,
                  newIndexPath: IndexPath?) {
    switch type {
    case .insert:
      tableView.insertRows(at: [indexPath!], with: .automatic)
    case .delete:
      tableView.deleteRows(at: [indexPath!], with: .automatic)
    case .update:
      let cell = tableView.cellForRow(at: indexPath!) as! TeamCell
      configure(cell: cell, for: indexPath!)
    case .move:
      tableView.deleteRows(at: [indexPath!], with: .automatic)
      tableView.insertRows(at: [indexPath!], with: .automatic)
    @unknown default:
      print("Unexpected NSfetchResultChangeType")
      
    }
  }
  
  func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
      tableView.endUpdates()
  }
  
  func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>,
                  didChange sectionInfo: NSFetchedResultsSectionInfo,
                  atSectionIndex sectionIndex: Int,
                  for type: NSFetchedResultsChangeType) {
    let indexSet = IndexSet(integer: sectionIndex)
    
    switch type {
    case .insert:
      tableView.insertSections(indexSet, with: .automatic)
    case .delete:
      tableView.deleteSections(indexSet, with: .automatic)
    default: break
    }
  }
  
}

没关系。找到了这个问题。插入行时,我从未使用NewIndexpath

因此情况关闭。

@ Alokc83. 很高兴你把它整理了!干杯! :]

这一主题在166天后自动关闭。不再允许新的回复。