title: Why is a strong reference cycle possible with NSNotificationCenter but not UIView.animateWithDuration?
body: <p>With a NSNotificationCenter block, I have to use [unowned self] to avoid a strong reference cycle:</p>
  
  <pre><code>NSNotificationCenter.defaultCenter()
      .addObserverForName(UIApplicationWillEnterForegroundNotification,
          object: nil,
          queue: nil,
          usingBlock: { [unowned self] (notification : NSNotification!) -&gt; Void in
              self.add(123)
          })
  </code></pre>
  
  <p>However, in UIView.animateWithDuration, I do not have to use [unowned self]:</p>
  
  <pre><code>   UIView.animateWithDuration(0.5, animations: { () -&gt; Void in
        self.someOutlet.alpha = 1.0
        self.someMethod()
     })
  </code></pre>
  
  <p>What's the difference?</p>