我正在使用核心数据制作一个简单的任务应用程序 我在主视图控制器中显示任务列表的位置 还有一个条形按钮,它将我带到一个新的视图控制器,在其中我向列表中添加新任务 问题是
let fetchReq: NSFetchRequest<MoneyOut> = MoneyOut.fetchRequest()
do{
myArr = try container.viewContext.fetch(fetchReq)
}catch{
print(error)
}
OperationQueue.main.addOperation {
print(self.myArr)
self.myTableView.reloadData()
}
这在主视图控制器中工作正常 但是当我向列表中添加新任务并返回到该主视图控制器时,我的列表未更新 我正在使用视图中的代码加载 我知道如果我在视图中使用此代码,它将正常工作,但是问题是当我已经获取了所有数据(我刚刚添加的新数据除外)时,我不想再次获取所有数据 有办法吗
答案 0 :(得分:0)
现在我知道了答案,方法之一就是使用通知中心,一旦保存了核心数据上下文,您就调用
NotificationCenter.default.addObserver(self, selector: #selector(yourfunc), name: NSNotification.Name.NSManagedObjectContextDidSave, object: nil)
代替您写的函数,您可以做的一件事是再次获取数据并重新加载表。