2011-10-30 13 views
9

En IOS5, utilizando ARC y células prototipo para tableView el guión gráfico, puedo reemplazar el código de abajo:comportamiento dequeueReusableCellWithIdentifier cambiado para las células prototipo?

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView 
    dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[UITableViewCell alloc] 
     initWithStyle:UITableViewCellStyleDefault 
     reuseIdentifier:CellIdentifier]; 
} 

// Configure the cell... 
return cell; 

Con este simple código ??:

UITableViewCell *cell = [tableView 
    dequeueReusableCellWithIdentifier:@"Cell"]; 
return cell; 

lo vi en este enlace:

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

de las gracias de antemano!

Arildo

Respuesta

8

Claro, su código son perfectos, guión gráfico de forma automática alloc nuevas células, el código de trabajo grande:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    RoadbookCell *cell = (RoadbookCell *)[tableView dequeueReusableCellWithIdentifier:@"RoadbookCell"]; 

    //Configure cell 
    //[cell.lab1 setText:@"Test"]; 

    return cell; 
} 
+1

no consigo por qué, pero esto no funciona para mí. Sigo recibiendo una celda "nula". Creé un nuevo proyecto de detalles maestros. El ejemplo funciona genial Cuando agrego el método cellForRowIndexPath y el método de tamaño de tabla y establezco el tamaño en 2 obtengo una excepción, ya que dequeueReusableCellWithIdentifier me sigue poniendo "nil". – bashan

+1

¿ha configurado TableCell en el guión gráfico? De esta manera: [link] http://minus.com/m59pfEOqW (nota: el identificador de celda es el mismo en el guión gráfico y en cellForRowAtIndexPath) – Kappe

+2

Y recuerda que debes hacer cualquier cosa de configuración en la subclase de celda en el método "awakeFromNib", no "initWithStyle:" (no se llama) ya que se carga desde el guión gráfico. – avocade

3

Esta es la manera de Apple pretende que sea utilizada, pero yo recomendaría contra . Hay un error que hace que dequeueReusableCellWithIdentifier devuelva nulo cuando VoiceAssist está habilitado en un dispositivo. Eso significa que su aplicación se bloqueará para los usuarios con esta opción activada. Esto sigue siendo un problema, ya que de iOS 5.1.1

Puede encontrar más información y una solución aquí:

http://hsoienterprises.com/2012/02/05/uitableview-dequeuereusablecellwithidentifier-storyboard-and-voiceover-doesnt-work/

El último párrafo tiene la solución

Cuestiones relacionadas