-3

我正在使用下一个代码来检查 string 是否不等于 value :

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

现在我正在尝试将 2 个或更多字符串与此代码进行比较:

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

它不工作......当我将它分成 2 个 IF 语句它工作时,这里有什么问题?

4

3 回答 3

1

您需要将 a||用于 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总是保证是真的,因为它不能同时是两者。我强烈建议您检查您的逻辑条件。

听起来你想检查它是否不是text1or text2,在这种情况下,代码应该是:

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