-3

次のコードを使用して、文字列が値と等しくないかどうかを確認しています:

if (![myString  isEqualToString:@"text1"])
//DO SOMETHING

今私は2つ以上の文字列をこのコードと比較しようとしています:

if (![myString isEqualToString:@"text1"] || ![myString isEqualToString:@"text2"])
//DO SOMETHING

そしてそれは機能していません...私がそれを2つのIFステートメントに分けるとき、それは機能しています、ここで何が問題になっていますか?

4

3 に答える 3

1

||ORにはを使用する必要があります。

例えばif (![myString isEqualToString:@"text1"] || ![myString isEqualToString:@"text2"])

于 2012-10-01T15:07:45.150 に答える
1

myStringがこれらの値のいずれでもない場合(ここで意味がある唯一のもの)に何かをしたい場合は、次を使用します。

 if (![myString isEqualToString:@"text1"] && ![myString isEqualToString:@"text2"])
      // DO SOMETHING

これは&&演算子を使用します。つまり、両方が真である必要があります。例:「myStringはtext1ではなく myStringはtext2ではありません」。

于 2012-10-01T15:12:34.653 に答える
0

使用する:

if (![myString isEqualToString:@"text1"] || ![myString isEqualToString:@"text2"])

しかし、このロジックには奇妙なことがあります。そうでない場合、text1またはそうでないtext2場合は、両方を同時に行うことはできないため、常に真であることが保証されます。論理条件を確認することを強くお勧めします。

text1どちらでもないかどうかを確認したいようですtext2。その場合、コードは次のようになります。

if (! ([myString isEqualToString:@"text1"] || [myString isEqualToString:@"text2"]) )
于 2012-10-01T15:08:06.653 に答える