Last active
January 24, 2019 10:27
-
-
Save zxhfirefox/db603a097fb3871689b7166cb4de5b82 to your computer and use it in GitHub Desktop.
Block in Block
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Test { | |
let networkClient: NetworkClient | |
let jsonSerilizer: JSONSerilizer | |
let logger: Logger | |
func run(completion: @escaping (Result) -> Void) { | |
let url: URL = URL(...) | |
logger.log("send request to \(url)" | |
networkClient.request(url) { [weak self] response, error in | |
guard let self = self else { return } | |
self.logger.log("processing response of \(url)" | |
self.jsonSerilizer.process(response) { [weak self] result in | |
guard let self = self else { return } | |
self.logger.log("processing response of \(url) finished") | |
completion(result) | |
} | |
} | |
} | |
} |
On line 10, if we write guard let strongSelf = self, then on line 12, should we use [weak strongSelf] or [weak self]?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On line 12, we should use [weak self] to avoid retain cycle, or we don't need?