正确的线程执行删除,插入和从核心数据获取

Ras*_*hid 6 core-data ios

我的应用程序连接到Web服务,从3种不同的方法执行POST,并将这3组数据中的每一组都插入到Core Data中.每当有新数据可用时,核心数据中的所有内容都将被删除并插入新数据.这3种方法中的每一种都以不同的方式显示TableViewControllers,这意味着每次显示这些方法时都会有3个以上的提取TableViewControllers.

总结一下,我们有3组数据从webservice中提取,然后我将所有这些数据插入到不同的实体中,同时获取要在main中显示的新数据TableViewController.

现在我正在努力解决线程和多上下文核心数据结构的复杂关系.我应该在哪里执行插入,删除和获取以确保我的应用程序的线程安全?

Hao*_*Hao 1

在多上下文CoreData中,可以有一个privateQueueRootMOC和一个mainQueueRootMoc,主MOC用于在mainThread中获取数据,私有MOC用于在privateMOC线程中更新、插入和删除数据。

privateMOC.performBlock({ () -> Void in
    //try insert, delete, update
    ....
    try privateMOC.save()
    onCompleteBlock() //fetch data in main thread use main MOC
})
Run Code Online (Sandbox Code Playgroud)