Tim*_*m B 1 switch-statement nsarray ios programmatically-created swift
我通过JSON提取了我的case语句允许的系统代码列表.它们以字符串形式显示,如下所示:
let validCodesFromJson:String = "001, 002, 003, 004, 005, 007, 008, 090, 091, 092, 096"
Run Code Online (Sandbox Code Playgroud)
然后我将此字符串转换为一个数组,其中包含以下内容:
let validCodes:NSArray = validCodesFromJson.componentsSeparatedByString(", ")
Run Code Online (Sandbox Code Playgroud)
我需要将这个代码数组放到我的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")
}
Run Code Online (Sandbox Code Playgroud)
如果代码在其使用默认的其他情况下为"006",则switch语句有效.如果我在第一种情况下定义所有代码而不是使用数组,它工作正常.但我需要以编程方式为此项目执行此操作.
您可以使用a guard-clause来增加每个特定表达式的复杂性case.例如:
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"
}
Run Code Online (Sandbox Code Playgroud)
如果你在操场上跑步,你会看到"Valid code".
如果您对查看这些模式的语法/语法感兴趣,可以使用Swift编程语言:语句