2011-03-09 8 views
34

Sto provando a caricare un dato (stringa) dai dati del nucleo e se quel valore in quella riga è uguale a "-" l'indicatore di rivelazione degli accessori si nasconderà e SelectionStyleNone.Nascondere/Mostrare UITableViewCell Indicatore di segnalazione accessoria

Ho provato a farlo, ma non ha avuto successo

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

O

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

Entrambi non funziona ... ma questo è possibile, anche se? grazie

risposta

18

Penso che il problema sia nell'espressione di confronto. Il modo corretto:

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

o

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

... perché == confronta i puntatori –

+0

funziona perfettamente, grazie mille =) –

1

avrei probabilmente usare:

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

potrebbe sembrare come un sottile cambiamento, ma utilizzando il IsEqual invece di isEqualToString mezzi che se il tuo codice è più robusto se cambi il tipo di dati che lo attraversano (intValue, floatValue, CGPointValue). Invece di dover riscrivere l'intera funzione, è sufficiente modificare la variabile immessa.

Questo tipo di metodo può anche essere facilmente copiato in parti diverse di un'app e il valore viene modificato in base alle circostanze.