在单个操作中识别多个字符串值

时间:2010-02-03 18:50:35

标签: objective-c cocoa

再次感谢您的帮助。

我有一个简单的操作来检查textField的stringValue,如果匹配,则会在第二个textField中打印一个状态消息:

 if 

 (textField.stringValue == (@"Whatever" )){
 [outputDisplay setStringValue:@"Success"];

我的问题是如何在此方法中实现多个输入stringValue选项?例如“Whatever”“Whatever1,Whatever2”都会在outputDisplay中返回“Success”。

感谢。

2 个答案:

答案 0 :(得分:10)

创建一组您正在寻找的答案,并测试相关字符串是否在那里。

NSSet *successStrings = [NSSet setWithObjects:@"Whatever1",
                                              @"Whatever2",
                                              @"Whatever3",
                                              nil];
if ([successStrings containsObject:st]) {
    [outputDisplay setStringValue:@"Success"];
}

(一个阵列也可以,但是一个专门用于测试成员资格,因此它更适合我们在这里做的事情。)

答案 1 :(得分:6)

首先,要检查NSString - s的相等性,您应该使用-isEqualToString:==比较经常返回NO的指针值,即使两个字符串的内容相同也是如此。

要检查文本字段是否与多个字符串匹配,请将它们与||or)运算符相关联,以便获得

NSString* st = textField.stringValue;
if ([st isEqualToString:@"Whatever"] || [st isEqualToString:@"Whatever1"] || [st isEqualToString:@"Whatever2"]) {
  [outputDisplay setStringValue:@"Success"];