在IF语句中使用带有OR的isEqualToString

时间:2012-10-01 15:06:28

标签: iphone objective-c nsstring

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

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

现在我正在尝试使用此代码比较2个或更多字符串:

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

并且它不起作用......当我把它分成2个IF语句时它的工作,这里有什么问题?

3 个答案:

答案 0 :(得分:1)

您需要使用||作为OR。

e.g。 if (![myString isEqualToString:@"text1"] || ![myString isEqualToString:@"text2"])

答案 1 :(得分:1)

如果你想在myString不是这些值中的任何一个时做某事(这里唯一有意义的话)你会使用:

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

这使用&&运算符,这意味着它们都必须为true。例如“myString不是text1 myString不是text2”。

答案 2 :(得分:0)

使用:

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

但这种逻辑有些奇怪。如果它不是text1或者它不是text2总是保证是真的,因为它不能同时出现。我强烈建议您检查一下您的逻辑状况。

听起来我想检查它是不是text1还是text2,在这种情况下代码应该是:

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