I think you've missed the point of what Luke's saying. If 
dequeueReusableCellWithIdentifier: returns nil then you create a cell with that 
identifer, correct, and that cell can be recycled later by the tableview. 
That's what the [ [ [ UITableViewCell ] alloc ] initWith... ] autorelease ] 
does, so your code should look something like this

UITableViewCell *cell = [ tableView dequeueReusableCellWithIdentifier:<yourid> 
];

if( !cell )
        cell = <some line of code to create one>

What's that line of code look like in your version which uses a nib? Luke is 
suggesting that you're not actually creating a new cell in that instance but 
are reusing the same one from one single load of a nib, that's not going to 
work, you need to create a new object each time. Yes the table will hang onto 
and reuse them for you as it scrolls around but you need more than just one 
instance. 



On 01-Aug-2010, at 1:25 PM, Laurent Daudelin 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/rols%40rols.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