I'm trying to call reloadData() function in a calling function using completion handler:
override func viewDidLoad()
{
super.viewDidLoad()
let appDel: AppDelegate = UIApplication.shared.delegate as! AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext
tableView.rowHeight = UITableViewAutomaticDimension
do{
var request = NSFetchRequest<NSFetchRequestResult>(entityName: "Actualites")
let count = try context.count(for: request)
if (count == 0) {
REST().getArticles(limit: 5, limitstart: 0, catid: 6, key: "47347fd312afb0625020028298560d1f", context: context) { (json) in
CoreDataHelper().saveArticles(new: true, saveArticles: json, context: context)
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
}
actualites = try context.fetch(request) as! [Actualites]
}catch{
print(error)
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
When I go into the if count... the uiTableView is not reloaded.
actualites = try context.fetch(request) as! [Actualites]
actualities
needs to be updated when you get the response data too. The UITableView
does not know that this value is filled from a Core data fetch request.
do {
var request = NSFetchRequest<NSFetchRequestResult>(entityName: "Actualites")
let count = try context.count(for: request)
if (count == 0) {
REST().getArticles(limit: 5, limitstart: 0, catid: 6, key: "47347fd312afb0625020028298560d1f", context: context) { (json) in
CoreDataHelper().saveArticles(new: true, saveArticles: json, context: context)
DispatchQueue.main.async {
actualites = try context.fetch(request) as! [Actualites]
self.tableView.reloadData()
}
}
}
} catch {
print(error)
}