Skip to content

Instantly share code, notes, and snippets.

@zilmarinen
Last active November 15, 2021 19:51
Show Gist options
  • Save zilmarinen/46a7aee45ab07a3fabf049eecdf6e154 to your computer and use it in GitHub Desktop.
Save zilmarinen/46a7aee45ab07a3fabf049eecdf6e154 to your computer and use it in GitHub Desktop.
Operation example
class DownloadCommitsOperation: ConcurrentOperation, ProducesResult {
var output: Result<[Commit], Error> = Result { throw ResultError.noResult }
let api: GitHubAPI
init(api: GitHubAPI) {
self.api = api
super.init()
}
override func execute() {
let networkOperation = //api.operation(for:)
let importOperation = //CoreDataBatchImportOperation<Commit>()
let group = DispatchGroup()
group.enter()
networkOperation.passesResults(to: importOperation).enqueue(on: internalQueue) { result in
self.output = result
group.leave()
}
group.wait()
finish()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment