多次获取核心数据

抄袭

我正在构建一个带有核心数据的聊天应用程序,并且有ViewController聊天列表。我试图在每次出现视图之前更新此列表:

   override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        chatlist.removeAll()
        tableView.reloadData()

        guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
            return
        }

        let managedContext = appDelegate.persistentContainer.viewContext
        let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "MessagesList")
        let sort = NSSortDescriptor(key: "date", ascending: false)
        fetchRequest.sortDescriptors = [sort]

        do {
            self.chatlist = try managedContext.fetch(fetchRequest)
        } catch let error as NSError {
            print("Could not fetch. \(error), \(error.userInfo)")
        }
    }

但它只调用一次,当我去另一个ViewController并返回到这个时,数据没有更新,获取查询第二次不起作用。如何在每次出现 VC 时从 Core Data 中获取数据,甚至更好地如何在 VC 内部更新后台数据?

什_汗

第一个打开的表会自动重新加载,但不会出现第二个,所以在设置数组后尝试重新加载表

 self.chatlist = try managedContext.fetch(fetchRequest)
 tableView.reloadData()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章