2012-06-13 177 views
0

我想檢查插入到文本字段中的文本是否也在我的NSMutableArray中。 假設我的NSMutableArray有這些對象:「嘿,你好,不,是」。 然後當用戶輸入文本:「你好」我想那裏出現一個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; 
     } 
    } 
相關問題