我正在构建一个带有核心数据的聊天应用程序,并且有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] 删除。
我来说两句