Ios 如何以编程方式填充开关大小写值?

Ios 如何以编程方式填充开关大小写值?,ios,swift,nsarray,switch-statement,programmatically-created,Ios,Swift,Nsarray,Switch Statement,Programmatically Created,我正在通过JSON为我的case语句引入一个允许的系统代码列表。它们作为字符串引入,如下所示: let validCodesFromJson:String = "001, 002, 003, 004, 005, 007, 008, 090, 091, 092, 096" 然后,我将此字符串转换为具有以下内容的数组: let validCodes:NSArray = validCodesFromJson.componentsSeparatedByString(", ") 我需要将这个代码数组放

我正在通过JSON为我的case语句引入一个允许的系统代码列表。它们作为字符串引入,如下所示:

let validCodesFromJson:String = "001, 002, 003, 004, 005, 007, 008, 090, 091, 092, 096"
然后,我将此字符串转换为具有以下内容的数组:

let validCodes:NSArray = validCodesFromJson.componentsSeparatedByString(", ")
我需要将这个代码数组放入switch语句的第一个案例中

switch responseArray[selectedResponseTableRow]["code"]! {
        case validCodes:

            successfulPostAnimation()

        case "006":

            showAlertWindow("Alert", message: "Code was 006", buttonText: "OK")

        default:

           showAlertWindow("Alert", message: "Code was not in the list", buttonText: "OK")
        }

如果代码为“006”,则switch语句在使用默认值的每一种情况下都有效。如果我在第一种情况下定义所有代码,而不是使用数组,那么效果很好。但是我需要为这个项目编程

您可以使用
guard子句
来增加每个特定
情况下表达式的复杂性。例如:

var validCodes = ["001", "002", "003"]

var code = "002"

switch code {
    case let value where (contains(validCodes, value)):
        "Valid code"
    case "006":
        "Bad code"
    default:
        "Default"
}
如果你在操场上运行,你会看到
“有效代码”


如果您对这些类型的模式的语法/语法感兴趣,可以使用
保护子句来增加每个特定
大小写的表达式的复杂性。例如:

var validCodes = ["001", "002", "003"]

var code = "002"

switch code {
    case let value where (contains(validCodes, value)):
        "Valid code"
    case "006":
        "Bad code"
    default:
        "Default"
}
如果你在操场上运行,你会看到
“有效代码”


如果您有兴趣了解这类模式的语法/语法,您可以

注意,
组件中由字符串
分隔的字符串应该是
,而不是
,在示例中注释并固定。谢谢请注意,
组件中由字符串
分隔的字符串应该是
,而不是
在示例中被注释和固定。谢谢我认为你不需要休息?你说得对,罗伯,你被移除了。()使用Swift 3,我会这样写case条件:
case let value where validCodes.contains(value):
我认为您不需要中断?你说得对,罗伯,你被移除了。()使用Swift 3,我会这样写case条件:
case let value,其中validCodes.contains(value):