如何在将核心数据添加到数据库后立即从其获取数据

时间:2019-05-15 09:51:34

标签: ios swift

我正在使用核心数据制作一个简单的任务应用程序 我在主视图控制器中显示任务列表的位置 还有一个条形按钮,它将我带到一个新的视图控制器,在其中我向列表中添加新任务 问题是

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()
    }

这在主视图控制器中工作正常 但是当我向列表中添加新任务并返回到该主视图控制器时,我的列表未更新 我正在使用视图中的代码加载 我知道如果我在视图中使用此代码,它将正常工作,但是问题是当我已经获取了所有数据(我刚刚添加的新数据除外)时,我不想再次获取所有数据 有办法吗

1 个答案:

答案 0 :(得分:0)

现在我知道了答案,方法之一就是使用通知中心,一旦保存了核心数据上下文,您就调用

NotificationCenter.default.addObserver(self, selector: #selector(yourfunc), name: NSNotification.Name.NSManagedObjectContextDidSave, object: nil)

代替您写的函数,您可以做的一件事是再次获取数据并重新加载表。