OperationQueue に渡すコールバックには [weak self] を付けなくて良い?
https://github.com/apollographql/apollo-ios/blob/master/Sources/Apollo/ApolloClient.swift#L82
を読んでいると
OperationQueue
に渡しているresultHandler
は@escaping
が付いていないことに気づきました。OperationQueue
は普段使っていないので、あまり詳しくはないのですが、ネットワーク通信ですので、@escaping
と[weak self]
をセットで使うのが安全と考え、検索したところ、
https://stackoverflow.com/a/48125065/1979953
の回答を見つけました。
私の回答理解としては、
OperationQueue
はメモリーリークは起こらず、いい感じに取り扱ってくれるので、@escaping
と[weak self]
はいらないというように読めたのですが、
なぜ@escaping
と[weak self]
はいらないのかという疑問は残ったままとなりました。なにか理由があるとかいうわけではなく、Appleがそう作ったからという結論になってしまうのでしょうか?