title: Capturing a variable in a Block when the Block is in the initializer
body: <p><strong>Consider this:</strong></p>
  
  <pre><code>id observer = [[NSNotificationCenter defaultCenter] 
      addObserverForName:MyNotification 
                  object:nil 
                   queue:nil 
              usingBlock:^(NSNotification *note) {
                  [[NSNotificationCenter defaultCenter] 
                          removeObserver:observer 
                                    name:MyNotification 
                                  object:nil
              ];
              // do other stuff here...
      }
  ];
  </code></pre>
  
  <p>I'm using this pattern to observe a notification once and then stop observing it. But LLVM tells me (under ARC) that <em>Variable 'observer' is uninitialized when captured by block.</em></p>
  
  <p>How can I fix this, since the block necessarily captures the variable before initialization, it being part of the initializer? Will using the <code>__block</code> qualifier on <code>observer</code> do the trick?</p>