NSNotificationCenter ブロックでは、強力な参照サイクルを回避するために [unowned self] を使用する必要があります。
NSNotificationCenter.defaultCenter()
.addObserverForName(UIApplicationWillEnterForegroundNotification,
object: nil,
queue: nil,
usingBlock: { [unowned self] (notification : NSNotification!) -> Void in
self.add(123)
})
ただし、UIView.animateWithDuration では、[unowned self] を使用する必要はありません。
UIView.animateWithDuration(0.5, animations: { () -> Void in
self.someOutlet.alpha = 1.0
self.someMethod()
})
違いは何ですか?