2014-02-16 1 views
0

저는 현재 문자열의 처음 두 글자를 보려고합니다. 글자의 종류에 따라 뭔가하고 싶습니다. AA, BB, CC, AB, BC, CA의 6 가지 가능성이 있습니다. iOS : 스위치 케이스를 사용하여 문자열 접두사 확인?

나는 시도 다음 그러나 다음과 같은 오류가 계속 :

enter image description here

NSString *housing = [myArray firstObject]; 
    switch([housing compare:housing options:@"AA", @"BB", @"CC", @"AB", @"BC", @"CA" range:2]) { 

     case 0: 
      break; 

     case 1: 
      break; 

     case 2: 
      break; 

     case 3: 
      break; 

     case 4: 
      break; 

     case 5: 
      break; 

     default: 
      break; 
    } 
+1

경고는 무엇입니까? –

+0

하지만 일반적으로, 나는 당신이 틀린 비교 방법을 사용하고 있다고 생각합니다 ... 응답하기 전에 두 번 확인하려고합니다 ... –

+0

오류를 포함하도록 내 대답이 업데이트되었습니다. 범위에서 예상되는 ":"을 요구합니다. 나는 이것이 완전히 틀렸다는 것을 확신한다. 나는 내가 무엇을 묻고 있는지 짐작할 수있는 가장 좋은 방법이다. 당신의 도움을 주셔서 감사합니다! – KingPolygon

답변

4

(1) NSString 직전 comparecompare 후 즉시 NSString은 서로 비교하는 문자열입니다 , "주택"과 "주택"을 비교하는 것은 의미가 없습니다.

(2) 너는 오용하고있다. options. options검색 옵션 (NSCaseInsensitiveSearch, NSLiteralSearch, NSNumericSearch) 만 허용합니다.

(3) 범위는 숫자가 아닌 NSRange 여야합니다.

Here's the class reference.

편집 : 당신은 확실히 내가 헛소리 아니에요 있도록 논리를 다시 한 번 확인해야한다 그래서 내가 그렇게 자신을 말을하지 않는 경우 그냥 꽤 우아한 해결책을 생각 ... (그것은 3 오전하지만 여기)

// Check to see if the first 2 characters of the housing string are in an array of the characters 
switch([[@"AA", @"BB", @"CC", @"AB", @"BC", @"CA"] indexOfObject:[housing substringWithRange:NSMakeRange(0, 2)]){ 

    case 0: // Do something if first 2 characters are AA 
    break; 

    case 1: // Do something if first 2 characters are BB 
    break; 

    // etc ... 

    default: // Do something if not found 
    break; 
} 
관련 문제