title: Block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior
body: <p>Given the following:</p>
  
  <pre><code>- (void) someMethod
  {
      dispatch_async(dispatch_get_main_queue(), ^{
          myTimer = [NSTimer scheduledTimerWithTimeInterval: 60
                                                             target: self
                                                           selector: @selector(doSomething)
                                                           userInfo: nil
                                                            repeats: NO];
      });
  }
  </code></pre>
  
  <p>Where myTimer is declared in a private interface:</p>
  
  <pre><code>@interface MyClass()
  {
      NSTimer * myTimer;
  }
  @end
  </code></pre>
  
  <p>How would one fix the following warning:</p>
  
  <pre>Block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior</pre>
  
  <p>From what I have found so far, most suggestions involve putting something such as:</p>
  
  <pre><code>- (void) someMethod
  {
      __typeof__(self) __weak wself = self;
      dispatch_async(dispatch_get_main_queue(), ^{
          wself.myTimer = [NSTimer scheduledTimerWithTimeInterval: 60
                                                             target: self
                                                           selector: @selector(doSomething)
                                                           userInfo: nil
                                                            repeats: NO];
      });
  }
  </code></pre>
  
  <p>Except, that myTimer is an ivar, meaning <code>wself</code> does not have access to any properties.</p>
  
  <p>I guess my questions are:</p>
  
  <ol>
  <li>Do/should I care?</li>
  <li>Should I declare myTimer as a property?</li>
  </ol>
  
  <p>I use ivars quite a bit through my code. I just added the <code>-Weverything</code> flag to my project to see if I can find any underlying issues and this is by far the most common warning. I have no problem going though and fixing it by making my ivars properties, but I want to make sure I get a better understanding before I do that.</p>