The typical idiom is to try to dequeue a reusable cell. If that returns nil, 
create a new cell. No matter whether it was dequeued or created, configure the 
cell (i.e., assign values to labels, configure decorations, etc.). Dequeuing 
saves you the overhead of creating new views but you still need to completely 
configure every cell that you return from -cellForRowAtIndex:. If you're 
dequeuing properly, you should expect to have 1 cell object in existence for 
every row in the table (and probably more, depending on how aggressive the OS 
is about re-using cells).     

Dave Carrigan
Seattle, WA

On Jul 31, 2010, at 10:25 PM, Laurent Daudelin <[email protected]> wrote:

> Isn't the purpose of dequeueReusableCellWithIdentifier: of reusing 
> tableview's objects? I've used this in the past and it never failed me. The 
> documentation says "For performance reasons, a table view'€™s data source 
> should generally reuse UITableViewCell objects when it assigns cells to rows 
> in its tableView:cellForRowAtIndexPath: method". So, that's what I'm using. 
> Of course, I have 2 different cells for the 2 sections and I can't understand 
> why it doesn't work. Right now, I have 4 cells in section 2 but in the 
> future, I might have dozens of cells representing dozens of entries. I cannot 
> possibly create a different cell for each row, can I?
> 
> -Laurent.
> -- 
> Laurent Daudelin
> AIM/iChat/Skype:LaurentDaudelin                               
> http://www.nemesys-soft.com/
> Logiciels Nemesys Software                                    
> [email protected]
> 
> On Jul 31, 2010, at 22:20, Luke Hiesterman wrote:
> 
>> Are you returning the same cell 4 times? That's not right. You're going to 
>> need 4 separate cell instances even if they are of the same class and 
>> layout. It sounds like you might be taking 1 cell instance out of a nib and 
>> returning that each time. 
>> 
>> Luke
>> 
>> Sent from my iPhone.
>> 
>> On Jul 31, 2010, at 9:17 PM, Laurent Daudelin <[email protected]> 
>> wrote:
>> 
>>> I've been banging my head on this for over a day now and I just can't find 
>>> what's wrong with my tableview and the tableview cells.
>>> 
>>> Basically, as you can see here:
>>> 
>>> http://nemesys.dyndns.biz/Images/iPhoneScreenshot.png
>>> 
>>> I have a table view made of 2 sections. Section 1 has only one tableview 
>>> cell and, right now, it's barebone. Section 2 is supposed to have 4 cells. 
>>> When I use a cell from my xib file in Interface Builder and the tableview 
>>> appears, even though my method tableView:cellForRowAtIndexPath: is called 4 
>>> times, only the last cell is showing. If I however create the cells 
>>> programmatically using:
>>> 
>>> [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
>>> reuseIdentifier:CellIdentifier] autorelease]
>>> 
>>> then they show up properly. Of course, the cell is created only once 
>>> because on subsequent calls, I'm using the tableview 
>>> dequeueReusableCellWithIdentifier:.
>>> 
>>> I just don't get it. I use the same methods to set the textLabel and the 
>>> detailTextLabel in both cases. I just tried a few times of dragging a 
>>> default UITableView cell from the IB's Data Views tab, I don't modify it in 
>>> any way in IB except to give it a cell identifier and connect it to my 
>>> tableview controller so it can provide it to its tableview, it just won't 
>>> work and I get the tableview showing as in the picture above. I want to use 
>>> a tableview cell in IB because I need to add additional labels to it and 
>>> don't feel like doing it programmatically.
>>> 
>>> So, anybody can see what I am missing? I've done the same thing in other 
>>> iPhone projects I just can't see why I can't do it now and I'm at the end 
>>> of my rope here.
>>> 
>>> Thanks in advance for any comment, info or help!
> 
> _______________________________________________
> 
> Cocoa-dev mailing list ([email protected])
> 
> 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/dave%40rudedog.org
> 
> This email sent to [email protected]
_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [email protected]

Reply via email to