2010-08-09 2 views
2

Obj C의 enum typedef에 속한 문자열에서 값을 가져 오려고하지만 NSString의 값을 가져올 수없는 것 같습니다. I'me이 같은 일을 :문자열에서 typedef enum 유형으로 전환

typedef enum{ 
    S, 
    M, 
    L 
} Size; 

-(void)function:(NSString *)var{ 
Size value=[var value]; 
swicth(value){ 
    case S:... 
    case M:... 
    ... 
} 
} 

편집 : 문자열의 내용은 "M"@ "L"@ @ "S"같은 것을 BR 것

내가 표시되지 않습니다 수 나는 이것을 성취한다.

답변

0

문자열에 포함 된 내용이 명확하지 않습니다. @"S", @"M" 또는 @"L"입니까? 그렇다면 Size 열거 형의 값으로 자체 변환을 제공해야합니다. 문자열이 Size 항목 중 하나 (같은 @"0", @"1" 또는 @"2")의 숫자 값이 포함 된 경우에 -intValue 방법을 사용할 수 있습니다,

if ([var isEqualToString: @"S"]) { 
    // ... 
} else if ([var isEqualToString: @"M"]) { 
    //... 
} ... 

그러나 : 또는 당신은 당신의 방법에 문자열 비교를 사용할 수 있습니다 당신이 질문에 쓴 비교를하십시오.

+0

내가 문자열 내용에 대한 명확하지 않았다 미안 해요, 네가 될 위치에 unichar에 전환 할 수 있습니다, 문자열의 길이가 하나 있다는 것을 알고 있다고 가정 @ "S"@ "M"@ "L"그리고 else를 사용하면 스위치 사용 목적을 무효화 할 수 있습니다. –

2

당신이 0

switch ([string characterAtIndex:0]) { 
case 'S': ... 
case 'L': ... 
case 'M': ... 
} 
관련 문제