2012-06-13 4 views
0

텍스트 필드에 삽입 된 텍스트가 NSMutableArray에도 있는지 확인하고 싶습니다. NSMutableArray에 "Hey, Hello, No, Yes"와 같은 객체가 있다고 가정 해 봅시다. 그런 다음 사용자가 "Hello"텍스트를 입력하면 UIAlertView가 나타납니다. 이제 다음과 같은 메시지가 표시됩니다.NSMutableArray에 텍스트 필드의 텍스트가 포함되어 있는지 확인하십시오.

for (int slt = 0; slt < [zouten count]; slt++) { 
     if (zout.text = [zouten objectAtIndex:slt]) { 

      alert = [[UIAlertView alloc]initWithTitle:@"Goedzo!" message:[NSString stringWithFormat:@"Je hebt een zout gevonden"] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

     } 
    } 

    [alert show]; 

그러나 어떻게 든 메시지는 모든 단어와 함께 나타납니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

isEqualToString 메서드를 사용하여 문자열을 비교할 수 있습니다.

if([zout.text isEqualToString:[zouten objectAtIndex:slt]]) 
0

또는 세트로 변환하고 항목을 확인하여 코드를 간결하게 만들 수 있습니다 (예 :

NSSet *set = [NSSet setWithArray: zouten]; 
if([set containsObject:zout.text]) { 
    ... 
} 
+0

모두 감사합니다! 두 가지 솔루션 모두 작동했습니다! –

1

는이 같은 비교하면 : 당신이 실제로 대신 이렇게 비교하는 할당하는

if (zout.text = [zouten objectAtIndex:slt]) 

가 TRUE always.Therefore 대신 =를 사용하는 것입니다, 당신은 다음과 같이 비교해야한다 :

if ([zout.text isEqualToString:[zouten objectAtIndex:slt]]) 

코드는해야한다 :

for (int slt = 0; slt < [zouten count]; slt++) { 
     if ([zout.text isEqualToString:[zouten objectAtIndex:slt]]) { 
      alert = [[UIAlertView alloc]initWithTitle:@"Goedzo!" message:[NSString stringWithFormat:@"Je hebt een zout gevonden"] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [alert show]; 
      [alert release]; 
      break; 
     } 
    } 
관련 문제