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

pau*_*aul 3 cocoa objective-c

再次感谢您的帮助.

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

 if 

 (textField.stringValue == (@"Whatever" )){
 [outputDisplay setStringValue:@"Success"];
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

保罗

Chu*_*uck 11

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

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

(一个数组也可以工作,但是一个集合专门用于测试成员资格,所以它更适合我们在这里做的事情.)


ken*_*ytm 6

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

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

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