0

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

しかし、どういうわけか、すべての単語にメッセージが表示されます。私は何を間違っていますか?

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

または、セットに変換してエントリをチェックすることで、コードをより簡潔にすることもできます。

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

メソッドを使用isEqualToStringして文字列を比較できます。

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