Coredata插入和调度组

时间:2017-04-03 20:18:31

标签: swift core-data grand-central-dispatch

我有一个createGroup()函数,它使用Dispatch Group来确保在继续之前将所有新组的数据上传到我的远程数据库。我还希望将本地数据的副本保存到用户的CoreData。但是,我对此有点新,并且不确定在哪里安全地执行实体插入。

我认为最好的选项是将所有内容上传到远程数据库时将其保存在Dispatch Group的notify回调中。

var managedObjectContext: NSManagedObjectContext!

func createGroup(onSccess completion:@escaping () -> Void) {
    let dataDispatchGroup = DispatchGroup()
    dataDispatchGroup.enter()
    // Do asynchronous task 1
    dataDispatchGroup.enter()
    // Do asynchronous task 2

    dataDispatchGroup.notify(queue: DispatchQueue.main, execute: {
        // Do insertion here
        // NSEntityDescription.insertNewObjectForEntityForName....
        completion()
    })
}

我听说在处理线程时需要注意保存到CoreData。我的方法安全还是有更好的方法?

0 个答案:

没有答案