Skip to content

Instantly share code, notes, and snippets.

@IIkhsan
Created October 14, 2021 04:19
Show Gist options
  • Save IIkhsan/4ca17552ae790e2b6d5dc283962fe53a to your computer and use it in GitHub Desktop.
Save IIkhsan/4ca17552ae790e2b6d5dc283962fe53a to your computer and use it in GitHub Desktop.
Использование убегающих замыканий
import Foundation
class ViewController {
let dataManager = DataManager()
func viewDidLoad() {
prepareContent()
}
private func prepareContent() {
// ... loading
dataManager.getData(completion: processingPost(_:))
}
private func prepareContent2() {
// ... loading
dataManager.getData { posts in
posts.forEach { post in
print(post)
// ... make viewModels
// ... hide loader
// ... tableView.reloadData
}
}
}
func processingPost(_ posts: [Post]) {
posts.forEach { post in
print(post)
// ... make viewModels
// ... hide loader
// ... tableView.reloadData
}
}
}
class DataManager {
func getData(completion: @escaping((_ posts: [Post]) -> Void)) {
sleep(3)
// ... decode
// ... cache
completion([.init(), .init(), .init()])
}
}
struct Post { }
let vc = ViewController()
vc.viewDidLoad()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment