gpt4 book ai didi

ios - 如何以编程方式填充 switch case 值?

转载 作者:搜寻专家 更新时间:2023-11-01 05:59:24 25 4
gpt4 key购买 nike

我正在通过 JSON 为我的 case 语句提取允许的系统代码列表。它们以如下所示的字符串形式引入:

let validCodesFromJson:String = "001, 002, 003, 004, 005, 007, 008, 090, 091, 092, 096"

然后我将这个字符串转换成一个数组,如下所示:

let validCodes:NSArray = validCodesFromJson.componentsSeparatedByString(", ")

我需要将这组代码放入我的 switch 语句的第一个 case 中。

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-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"
}

如果你在 Playground 上运行它,你会看到“有效代码”

如果您有兴趣查看这些类型模式的语法/句法,您可以 The Swift Programming Language: Statements

关于ios - 如何以编程方式填充 switch case 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26509933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com