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 <mail...@ericgorr.net> 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 (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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to