title: Avoiding the "capturing self strongly in this block is likely to lead to a retain cycle" message
body: <p>every time I have to use a global var or property inside a block like this:</p>
  
  <pre><code>self.save = ^(){
    if (isItSaving == NO) {
        [self saveMyFile];
    }
  };
  </code></pre>
  
  <p>I have to rewrite this like </p>
  
  <pre><code>BOOL *iis = isItSaving;
  id myself = self;
  
  self.save = ^(){
    if (iis == NO) {
        [myself saveMyFile];
    }
  };
  </code></pre>
  
  <p>or Xcode will complain "capturing self strongly in this block is likely to lead to a retain cycle...</p>
  
  <p>It complains even about BOOL variables?</p>
  
  <p>Redeclaring everything before a block appears to be a lame solution.</p>
  
  <p>Is this the correctly way? Is there an elegant way?</p>
  
  <p>This stuff is ugly. I am using ARC.</p>