Re: Cleaning up weak references ( was Re: Odd Crash when adding table columns manually )
Re: Cleaning up weak references ( was Re: Odd Crash when adding table columns manually )
- Subject: Re: Cleaning up weak references ( was Re: Odd Crash when adding table columns manually )
- From: Corbin Dunn <email@hidden>
- Date: Thu, 20 Jan 2011 13:27:35 -0800
Hi Eric,
On Jan 20, 2011, at 9:26 AM, Eric Gorr wrote:
>
> On Jan 20, 2011, at 12:17 PM, Kyle Sluder wrote:
>
>> On Thu, Jan 20, 2011 at 7:22 AM, Eric Gorr <email@hidden> wrote:
>>> Based on my current understanding, the dealloc should be setting it's datasource and delegate to nil. Correct? If so, I will file a bug.
>>
>> No. It is the responsibility of the delegate to set the table view's
>> backpointer to nil. The delegate usually has an owning reference to
>> the table view. If -dealloc is being called on the table view, but the
>> delegate still has a pointer to the table view, that means a memory
>> management error has occurred.
>
> I think you misunderstood and I didn't write that sentence as clearly as I could.
>
> For a specific example, check out the AnimatedTableView sample code from Apple. The ATColorTableController class is a datasource for the table, but it's dealloc looks like:
>
> - (void)dealloc
> {
> [_colorList release];
> [_colorNames release];
> [_window release];
> [super dealloc];
> }
>
> Based on my current understanding, the table controller's dealloc (above) should be setting the table datasource and delegate to nil. Correct? If so, I will file a bug.
I wrote that sample, and gave the WWDC talk based on it a few years ago. I also "own" NSTableView.
Yes, please do file a bug. The sample should set the delegate/datasource to nil, as it is good practice to do so, and we can update the sample.
In practice, I didn't notice any issues with the table redrawing after the delegate was freed.
thanks for catching this!
--corbin
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden