开发者社区> 问答> 正文

如何使tableView.reloadData()与核心数据正常工作?

当我运行这个应用程序时,我可以在我的tableview但是当我保存(从单独的视图控制器)并返回到tableview controller, tableView.reloadData()接到电话但什么都没发生。在弹出数据之前,我使用通知中心重新加载数据。

TableViewController.斯威夫特:

lazy var fetchedResultsController: NSFetchedResultsController<Pet> = {
    let fetchRequest = PersistenceManager.shared.fetchRequest()
    let context = PersistenceManager.shared.context
    let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
    return frc as! NSFetchedResultsController<Pet>
}()

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(pushToAddPetViewController))
    tableView.register(MainTableViewCell.self, forCellReuseIdentifier: "cell")
    do {
        try fetchedResultsController.performFetch()
        tableView.reloadData()
    } catch let err {
        print(err)
    }
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    NotificationCenter.default.addObserver(self, selector: #selector(loadList), name: NSNotification.Name(rawValue: "load"), object: nil)
}

@objc func loadList(notification: NSNotification){
    DispatchQueue.main.async {
        self.tableView.reloadData()
    }
}

斯威夫特:

func saveContext() {
    // Inputs saved to coreData
    PersistenceManager.shared.saveContext()
    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
    self.navigationController?.popViewController(animated: true)
}

展开
收起
游客5akardh5cojhg 2019-12-06 14:43:11 441 0
1 条回答
写回答
取消 提交回答
  • Just put the following lines in loadList() function instead of ViewDidLoad(): 
    do {
            try fetchedResultsController.performFetch()
            tableView.reloadData()
        } catch let err {
            print(err)
        }
    
    2019-12-06 14:43:33
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
动态、高效,蚂蚁动态卡片的内核逻辑 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载