> On 6 May 2016, at 21:03, Matthew LeRoy <mle...@minitab.com> wrote: > > Hello, > > I'm having an issue where an NSTableView appears to be messaging its delegate > after the delegate has been deallocated, causing an EXC_BAD_ACCESS crash. It > doesn't always happen, but it happens regularly. My understanding is that > NSTableView's delegate is a zeroing weak reference, and so I'm stumped as to > how/why it is sending a message to the delegate after the delegate has been > deallocated. Its a weak reference, not a zeroing weak reference. So when your delegate disappears the NSTableView delegate still points to it unless you manually intervene. You only get the zeroing weak behaviour when you build with arc. I don’t know if AppKit is built with arc enabled or not but the NSTableView delegate is declared as a getter/setter pair rather than a weak property.
This catches us out because we are used to seeing the arc zeroing behaviour in our own arc enabled code. We forget that some of the objects we interact with don’t act quite the same. WebView delegates for instance behave in the same way. I generally set my table and web view delegates to nil in the NSViewController dealloc - this precaution seems to pay off in terms of increased stability when view hierarchies get torn down. J _______________________________________________ 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