title: Using weak self in dispatch_async function
body: <p>I read a lot of posts about using <code>__weak self</code> inside <code>dispatch_async</code>, and now I am a litle bit confused.</p>
  
  <p>if I have :</p>
  
  <pre><code>self.myQueue = dispatch_queue_create("com.biview.core_data", NULL);
  
  dispatch_async(self.myQueue, ^(void){
      if (!self.var1) {
          self.var1 = ...;
      }
      dispatch_async(dispatch_get_main_queue(), ^(void) {
          if ([self.var2 superview]) {
              [self.var2 removeFromSuperview];
          }
  
          [self.Label setText:text];
      });
  });
  </code></pre>
  
  <p>do I need to use <code>__weak self</code>. Because I read that in some cases <code>dispatch_async</code>   not need a <code>__weak self</code>.</p>
  
  <p><a href="https://stackoverflow.com/questions/8806193/when-and-why-would-i-want-to-declare-a-local-variable-as-weak-using-arc">See last comment here</a></p>