2011-03-09 9 views
34

Estoy tratando de cargar un dato (cadena) desde los datos del núcleo y si ese valor en esa fila es igual a "-" el Indicador de divulgación de accesorios se ocultará y SelectionStyleNone.Ocultar/Mostrar Indicador de divulgación de accesorios UITableViewCell

yo probamos este, pero no tiene éxito

if (entity.value == @"--"){ 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
} 

O

NSString *this = entity.value; 
if (this == @"--") { 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
} 

Ambos no funciona ... pero esto es posible sin embargo? gracias

Respuesta

18

Creo que el problema está en la expresión de comparación. La forma correcta:

if ([entity.value isEqualToString:@"--"]) 

o

if ([this isEqualToString:@"--"]) 
+3

... porque == compara punteros –

+0

funciona perfecto, muchas gracias =) –

1

probablemente usaría:

if ([userEventStatus.status.stringValue isEqual:@"--"]) 

Podría parecer como un cambio sutil pero utilizando el IsEqual en lugar de isEqualToString medios eso si su código es más robusto si cambia el tipo de datos que lo atraviesan (intValue, floatValue, CGPointValue). En lugar de tener que volver a escribir la función completa, simplemente puede cambiar la variable ingresada.

Este tipo de método también se puede copiar fácilmente en diferentes partes de una aplicación y el valor cambia según las circunstancias.

Cuestiones relacionadas