检查NSMutableArray是否包含textfield中的文本

时间:2012-06-13 10:33:21

标签: iphone xcode tableview textfield

我想检查插入文本字段的文本是否也在我的NSMutableArray中。 所以我要说我的NSMutableArray有这些对象:“嘿,你好,不,是的”。 然后,当用户输入文本:“Hello”时,我希望在那里出现UIAlertView。我现在有以下内容:

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];

但不知何故,每个单词都会显示消息。我做错了什么?

3 个答案:

答案 0 :(得分:1)

当你这样比较时:

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

你实际上是分配而不是比较所以它总是为TRUE。因此,你应该比较这样:

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;
        }
    }

答案 1 :(得分:0)

您可以使用isEqualToString方法来比较字符串。

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

答案 2 :(得分:0)

或者,您可以通过转换为集合并检查条目来使您的代码更简洁,例如

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