On Jan 11, 2011, at 5:49 PM, Eric Gorr wrote:

> I do release them after adding them to the table. It will still crash...

I cannot reproduce the crash with your test project. Have you verified, using 
zombies, that in fact it is a table column crashing? It might have to do with 
an invalid data source object...

> On Jan 11, 2011, at 7:29 PM, Peter Lübke <sound-fab...@gmx.de> wrote:
> 
>> Table columns are retained by the table view they are added to.
>> 
>> So you can safely release or autorelease the table column right after 
>> invoking -addTableColumn: .
>> The table view owns its columns and will release them when it itself is 
>> released.
>> 
>> This is the normal behaviour when adding subviews to an NSView or its 
>> subclasses.
>> 
>> Peter
>> 
>> 
>> Am 11.01.2011 um 18:06 schrieb Eric Gorr:
>> 
>>> I've got a sample test project at:
>>> 
>>> http://ericgorr.net/cocoadev/TableColumnTest.zip
>>> 
>>> which reproduces the strange crash.
>>> 
>>> I have a NSTableView to which I need to add NSTableColumns manually using 
>>> the addTableColumn: method. The problem is that for some reason when I 
>>> release the window and everything is being deallocated, someone has an 
>>> extra retain on the table column and it sticks around. This causes a crash 
>>> because the OS tries to redraw the table which really isn't there.
>>> 
>>> Note: With the code as written, it will only cause a crash sometimes...if 
>>> you comment back in the call to the EventAvail function in 
>>> WindowTestAppDelegate.m, it will crash every time...this is how I ended up 
>>> finding the odd behavior to begin with - I am working with a cocoa/carbon 
>>> app and EventAvail is still being called.
>>> 
>>> I can avoid the crash if, in my TableController class, I manually remove 
>>> the table column from the table first. Is this what I am expected to do if 
>>> I manually add the column? I would not have thought so, but perhaps I am 
>>> wrong...?
>>> 
>>> In TableController.m, I have the function GetNewColumn which creates a new 
>>> table column. After I alloc and init the column, I can log the retain count 
>>> of the column and see that it is 1. After I call setWidth: on the table 
>>> column, I can see that the retain count is 2.
>>> 
>>> Can anyone shed some light on what might be going on here and why it is 
>>> crashing?
>>> 
>>> (if it matters, I am still running on 10.6.5)

Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"

_______________________________________________

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