如何测试Swift中的字典中是否存在键?

时间:2017-03-14 13:12:35

标签: swift key nsdictionary

我尝试了但是事件如果值为nil,它没有正确操作(键“CODE_REQUEST1不存在)。

form.souhait1_1 = contactDetails["CODE_REQUEST1"] != nil ? String(formatIntToString(contactDetails["CODE_REQUEST1"])) : ""

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用Optional的{​​{3}}方法有条件地使用字典中给定键的(可能存在的键:s)值:

form.souhait1_1 = contactDetails["CODE_REQUEST1"]
    .map { String(formatIntToString($0)) } ?? "N/A"

如果该密钥不存在,则对contactDetails["CODE_REQUEST1"]的呼叫将为nil.map呼叫将返回nil,在这种情况下{{1}合并运算符nil将用于提供默认值(??以上)。

答案 1 :(得分:0)

你可以用??对于swift3

var dic = ["CODE_REQUEST1":"success"]
var value = dic["CODE_REQUEST1"] ?? "" // value = success
dic = ["qq":"fail"]
value = dic["CODE_REQUEST1"] ?? "" // value = ""