2011-03-09 3 views
34

코어 데이터에서 데이터 (문자열)를로드하려고하고 해당 행의 값이 "-"인 경우 액세서리 표시기 표시기가 숨겨지고 SelectionStyleNone이 표시됩니다. UITableViewCell 액세서리 공개 표시 숨기기/표시

나는이 시도했지만 성공하지

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

또는

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

작업 ...하지만 그래도 수없는 두?를 감사합니다

답변

18

나는 그 문제가 비교 표현에 있다고 생각합니다. 올바른 방법은 : isEqualToString에게 수단을

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

그것은 미묘한 변화처럼 보일 수 있지만 대신 ISEQUAL를 사용하여 :

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

또는

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

... == 포인터를 비교하기 때문에 –

+0

완벽하게 작동합니다. –

1

아마 사용합니다 코드를 통과하는 데이터 유형 (intValue, floatValue, CGPointValue)을 변경하면 코드가 더욱 강력 해집니다. 전체 함수를 다시 작성하지 않고 입력 한 변수 만 변경할 수 있습니다.

이 유형의 메소드는 앱의 다른 부분에 쉽게 복사 할 수 있으며 상황에 따라 값이 변경됩니다.

관련 문제