簡體   English   中英

如何以編程方式填充開關盒值?

[英]How do I programmatically populate switch case values?

我正在通過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-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"
}

如果您在操場上跑步,您會看到"Valid code"

如果您有興趣了解這些模式的語法/語法,可以使用Swift編程語言:語句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM