我想检查插入文本字段的文本是否也在我的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];
但不知何故,每个单词都会显示消息。我做错了什么?
答案 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]) {
...
}