On Feb 16, 2012, at 2:05 PM, Greg Parker wrote: > On Feb 16, 2012, at 8:22 AM, Matt Neuburg <m...@tidbits.com> wrote: >> On Wed, 15 Feb 2012 16:20:50 -0800, Greg Parker <gpar...@apple.com> said: >>> >>> Are you using GC or ARC? I think this is safe with GC but not safe with >>> ARC, but I'm not an expert in the NSNotificationCenter machinery. >> >> ARC, but I don't see how it might be unsafe. I sure *hope* it isn't, because >> that's what the __weak is for. You need that because if your observer >> doesn't vanish in good order, neither will +self+, because the observer >> retains +self+, not just while registered with the notification center but >> for as long as it lives (by way of the block, I presume). *That* is >> something I *do* understand, having spent many hours watching the retain >> counts at work. > > The question is, who retains the observer? The __block __weak variable does > not, because it's weak. NSNotificationCenter does not, as I understand it.
I was worried about that, too, but the -[NSNotificationCenter addObserverForName:object:queue:usingBlock:] docs say: "In a reference counted environment, the system retains the returned observer object until it is removed, so there is no need to retain it yourself." ARC does still count as a reference counted environment, I assume. Regards, Ken _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com