title: Do we need to repeat `guard let self = self else { return }` inside each nested closure to keep strong self?
body: <p>I need to keep strong self inside my inner clousures.
  I know that it's enough to declare <code>[weak self]</code> only once for outer closure.</p>
  <p>But what about <code>guard let self = self else { return }</code>, is it enough to declare it once for outer closure also? Do we have any edge cases here ?</p>
  <pre><code>  apiManager.doSomething(user: user) { [weak self] result in
              guard let self = self else { return }
  
              self.storageManager.doSomething(user: user) { result in
                  // guard let self = self else { return } &lt;- DO WE NEED IT HERE ?
                  self.doSomething()
              }
          }
  </code></pre>
  <p>Seems like language analyser says NO - one declaration is enough , but want to be sure.</p>