0

我想检查文本字段中插入的文本是否也在我的 NSMutableArray 中。所以假设我的 NSMutableArray 有这些对象:“嘿,你好,不,是”。然后当用户输入文本时:“你好”我希望那里出现一个 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];

但不知何故,这个信息随着每一个字出现。我究竟做错了什么?

4

3 回答 3

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;
        }
    }
于 2012-06-13T10:42:30.683 回答
0

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

if([zout.text isEqualToString:[zouten objectAtIndex:slt]])
于 2012-06-13T10:36:08.070 回答
0

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

NSSet *set = [NSSet setWithArray: zouten];
if([set containsObject:zout.text]) {
   ...
}
于 2012-06-13T10:39:19.500 回答