2011-03-09 15 views
34

Próbuję wczytać dane (ciąg) z danych podstawowych i jeśli ta wartość w tym wierszu jest równa "-", wskaźnik ujawnienia akcesoriów zostanie ukryty, a SelectionStyleNone.Ukrywanie/wyświetlanie UITableViewCell Wskaźnik ujawnienia akcesoriów

Próbowałem, ale nie udany

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

Albo

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

Obie nie działa ... ale jest to możliwe, chociaż? dzięki

Odpowiedz

18

Myślę, że problem dotyczy wyrażenia porównania. Prawidłowy sposób:

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

lub

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

... ponieważ == porównuje wskaźniki –

+0

działa idealnie, dziękuję bardzo =) –

1

Prawdopodobnie używać:

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

To może wydawać się subtelne zmiany, ale stosując IsEqual zamiast isEqualToString środki że jeśli twój kod jest bardziej niezawodny, jeśli zmienisz rodzaj danych przez niego przechodzących (intValue, floatValue, CGPointValue). Zamiast przepisywania całej funkcji możesz po prostu zmienić wprowadzoną zmienną.

Ten rodzaj metody można również łatwo skopiować do różnych części aplikacji, a wartość zmieni się w zależności od okoliczności.

Powiązane problemy