2011-04-21 3 views
0

NSString에 특정 문자 (이 경우에는 "-")가 포함되어 있지 않은지 여부를 감지하는 방법이 있습니까? 예를 들어 NSString @"-OU"이 있고 NSString @"YOU"에 문자열이 @"YOU"이고 @"-OU"이 아닌 경우 UIAlert를 발생시키는 방법이 있습니까?NSMutableString에 특정 문자가 포함되어 있지 않은지 확인하십시오.

편집 : 그런데 나는이 문자열을 동적으로 만들려고합니다. 저는 현재 다음과 같은 코드를 가지고이 일을 할 수 있는지 알고 싶어 :이 코드는 현재 엑스 코드에서 다음과 같은 경고를 던지고있다

- (BOOL) isDone:(NSString *)str{ 

     unichar dash = '-'; 

    for(int i = 0; i < [str length]; i ++){ 
     if([str characterAtIndex:i] != dash){ 
      return YES; 
     } 

     else{ 
      return NO; 
     } 
    } 

} 

: "제어 void가 아닌 함수의 끝에 도달 할 수 있습니다." 당신의 대시 전혀 자신의 빌드 기능을 사용하여 단어에있는 경우 테스트하려는 경우

답변

0

시도 대시를 찾을 때까지 전체 문자열을 통과하고, 대시를 찾자 마자 종료됩니다. 그렇지 않으면 문자열 전체를 검사 한 후에 NO를 반환합니다.

+0

ahhh 좋은 캐치가 당신을 감사합니다! 그러나 실제로 나는 당신의 예에서 YES와 NO를 뒤집을 필요가있다. – locoboy

+0

if 문을! =에서 ==로 변경하여 작업을 단순화 했음에도 불구하고 반환하는 값에 따라 다시 한 번 설명합니다. – Mike

+0

'rangeOfString'을 사용하여 아래 답변을 확인하십시오. – John

5

내가

- (BOOL) isDone:(NSString *)str{ 

     unichar dash = '-'; 

    for(int i = 0; i < [str length]; i ++){ 
     if([str characterAtIndex:i] == dash){ 
      return YES; 
     } 

    } 
    return NO; 

} 

그것을이 루프 것이다이 방법을 이런 식으로 할 것이

NSString *[email protected]"-OU"; 
if ([yourString rangeOfString:@"-"].location == NSNotFound) { 
    NSLog(@"string does not contain -"); 
} else { 
    NSLog(@"string contains -"); 
} 
+0

위의 내용을 참조하십시오. – locoboy

+0

메신저가 무엇을 하려는지 확실하지 않습니다. 첫 번째 문자가 대시인지 아닌지 테스트하는 중입니까? 그렇다면 왜 루프를합니까? 귀하의 루프는 첫 번째 문자가 true 또는 false인지 여부에 관계없이 종료됩니다. – Mike

+0

단어에 대시가 있으면 테스트하려고합니다. – locoboy