我有一个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。我的方法安全还是有更好的方法?