> On Feb 6, 2015, at 6:48 AM, Jonathan Mitchell <jonat...@mugginsoft.com> wrote: > > // remove observers > // unregister for notifications
I have to confess I'm still not completely certain whether these are needed under ARC. I remember reading something about at least one of these being handled automatically, but I just skimmed through some docs now and couldn't find anything. I tend to put these in my classes but always wonder whether I strictly need to. > // set any non-weak delegates to nil (NSTableView et al) I think you meant "set any _weak_ delegates to nil", i.e. clear the delegate property of any object of whom I'm the delegate. Non-weak doesn't make sense, because if a delegate has a strong reference to self, then self can't possibly be in its dealloc method. Note that this is only necessary if (a) the other object can outlive self, and (b) the other object could still send the delegate messages in the future. > // invalidate any timers This is incorrect, because NSTimer's target property is a strong delegate. So if self is currently the target of any NSTimer, it couldn't be deallocated. In fact, if you're in a dealloc method and still have a reference to such a timer, it indicates there's a refcounting error in your code! Worse, invalidating it in -dealloc will certainly cause a crash because it'll call -release on you during your dealloc… —Jens _______________________________________________ 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