Mit einem NSNotificationCenter Block, ich habe [unowned Selbst] zu verwenden, um einen starken Referenzzyklus zu vermeiden: müssenWarum ist ein starker Referenzzyklus mit NSNotificationCenter möglich, aber nicht mit UIView.animateWithDuration?
NSNotificationCenter.defaultCenter()
.addObserverForName(UIApplicationWillEnterForegroundNotification,
object: nil,
queue: nil,
usingBlock: { [unowned self] (notification : NSNotification!) -> Void in
self.add(123)
})
jedoch in UIView.animateWithDuration, ich weiß nicht [unowned Selbst] verwenden:
UIView.animateWithDuration(0.5, animations: {() -> Void in
self.someOutlet.alpha = 1.0
self.someMethod()
})
Was ist der Unterschied?
Whoa das ist verrückt, also ist es nur wegen eines Cocoa Bug ich muss das tun? – TruMan1
@ TruMan1Die Antwort, die ich zur Verfügung gestellt habe, zeigte nur ein Problem mit dem Benachrichtigungscenter. Der wahre Grund ist, dass Sie vermeiden wollen, einen starken Referenzzyklus zu erstellen. Ich habe meine Antwort aktualisiert, um das zu berücksichtigen – AntonTheDev