On Jan 19, 2011, at 8:24 PM, Eric Gorr wrote:

> On Jan 19, 2011, at 8:19 PM, Graham Cox wrote:
> 
>> On 20/01/2011, at 12:14 PM, Eric Gorr wrote:
>> 
>>> The table is also owned by the the scrolling view and therefore the window 
>>> and would not be deallocated here...it will stick around long after the 
>>> controller is deallocated.
>> 
>> You're right, but since the table owns its columns, it is still the table's 
>> job to manage them, not yours.
> 
> Agreed. I never liked the solution, which is one of the reasons why I posted 
> the message to begin with.
> 
>> Glad you got it solved anyway, but it's nice to know that the best solution 
>> turned out to be the correct, documented and recommended one after all!
> 
> Indeed. Learned stuff too...I had not fully understood the rules regarding 
> weak references before.
> 
> Hopefully this thread has helped others as well.


I was wondering why this was such a surprise to me, so I went hunting through 
sample code, books, etc.

I cannot seem to find any sample code, either in books (even Cocoa Programming 
for Mac OS X (3rd Edition)) or in Apple's own sample code where they follow 
these rules. I think that is why it has surprised me. I sure there must be some 
out there that do follow these rules, but the examples seem to be rare at the 
moment.

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 dealloc should be setting it's 
datasource and delegate to nil. Correct? If so, I will file a bug.

Or, what is the reason why the code as written is correct?


_______________________________________________

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