title: What happens when a block is set to nil during its execution?
body: <p>Suppose I have an object with a strong reference to a block.  Sometime during the execution of that block, the strong reference is set to nil.  Is the block guaranteed to finish its execution, or can this cause a crash?  I've seen exc-bad-access errors, but I can't produce them reliably, so I don't know exactly why they pop up.</p>
  
  <p>For example:</p>
  
  <pre><code>-(void)method
  {
      self.block = ^{
          //code
          self.block = nil;
          //more code - crash here?
      }
  }
  
  -(void)otherMethod
  {
      block();
  }
  </code></pre>