Re: What causes a UITableViewCell to be deallocated?
Re: What causes a UITableViewCell to be deallocated?
- Subject: Re: What causes a UITableViewCell to be deallocated?
- From: Laurent Daudelin <email@hidden>
- Date: Mon, 23 Jan 2012 14:15:49 -0800
It seems that the deallocation happens when a block is being deallocated. Is it possible that a block ran on the main queue of an NSOperationQueue could be deallocated in another thread?
-Laurent.
--
Laurent Daudelin
AIM/iChat/Skype:LaurentDaudelin http://www.nemesys-soft.com/
Logiciels Nemesys Software email@hidden
On Jan 23, 2012, at 13:49, Laurent Daudelin wrote:
> Hello Luke.
>
> Well, I already checked that. The cell is being deallocated from a secondary thread but there is nothing in the thread that indicates what triggered it. It looks like a performSelector:withObject:afterDelay: or something like it but we don't have any of those in the table view controller that controls the table view. Like I said in my original message, I've looked for any flavor of UITableView reload… and the only calls we have are reloadData but they are all executed on the main thread using [[NSOperationQueue] mainQueue] addOperationWithBlock: so I'm stumped as to where this deallocation is triggered. I've checked all the other running threads and I can't find any code that you reload the table view which could cause its cells to be deallocated.
>
> -Laurent.
> --
> Laurent Daudelin
> AIM/iChat/Skype:LaurentDaudelin http://www.nemesys-soft.com/
> Logiciels Nemesys Software email@hidden
>
> On Jan 23, 2012, at 13:38, Luke Hiesterman wrote:
>
>> Think about it simply. A cell gets deallocated just like any other object - when its retain count goes to zero. If you're looking for a cell getting deallocated on a non-main thread, you're looking for a place release is being called on a non-main thread. I would think you could just override the dealloc method to help you track this situation in the debugger. Perhaps add an NSAssert([NSThread isMainThread], @"wups"); in there.
>>
>> Luke
>>
>> On Jan 23, 2012, at 11:38 AM, Laurent Daudelin wrote:
>>
>>> Hello.
>>>
>>> I'm trying to track a crash in our app where we have a custom UITableView cell that contains a UITextView because we need the ability to display and open links that might be in the text we're displaying in the text view.
>>>
>>> The problem is that somehow, the cell is deallocated and WebKit complains that it's been unable to obtain the web lock from a thread other than the main thread or the web thread when it's deallocated. I have reviewed the code and checked all the "reload…" message we might send to the table view that could cause the deallocation of its cells but all of those calls are executed from the main thread using [[NSOperationQueue mainQueue] addOperationWithBlock:^{…}] so I'm stumped. Are there any other situations where UITableView cells would be deallocated? The view displays and the view isn't unloaded due to memory warning or any other situation.
>>>
>>> -Laurent.
>>> --
>>> Laurent Daudelin
>>> AIM/iChat/Skype:LaurentDaudelin http://www.nemesys-soft.com/
>>> Logiciels Nemesys Software email@hidden
>>>
>>>
>>> _______________________________________________
>>>
>>> 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
>>
>
_______________________________________________
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