[英]How to obtain a String from a dictionary and make sure it is not null? (Swift / iOS)
如何从Swift中的键从字典(也可以为null)获取值? 返回值不能为null(如果字典中没有该值,则应将其填充为““””)
示例代码:
func getValue(data:[String:AnyObject], key:String!) -> String! {
guard let value:String! = data[key] else {
return ""
}
return value
}
上面的代码无法生成。
容易得多:
return data [key] as? String ?? "";
(感谢Thilo)但是,当您知道方法返回字符串时,为什么要调用方法“ getValue”? 您的方法名称应表示该方法的作用。 您的方法从字典中返回一个字符串或一个空字符串。 称它为getStringOrEmpty怎么样?
您还应该考虑以下情况:在来自JSON的字典中,该值可以为null,可以为数字,甚至可以为数组。 您应该确定在这些情况下要做什么。 如果该值不是字符串,则至少要添加一些调试代码。
怎么样
func getValue(data:[String:Any], key:String) -> String {
guard let value = data[key] as? String else {
return ""
}
return value
}
如果键不存在或不是字符串,则将返回空字符串。
请注意,我从AnyObject
更改为Any
因为字符串不是对象。
如果需要,您也可以将data
和key
设为可选:
func getValue(data:[String:Any]?, key:String?) -> String {
guard let k = key, let value = data?[k] as? String else {
return ""
}
return value
}
试试看
func getValue(data:[String:AnyObject], key:String!) -> String! {
guard let value:String! = data[key] as! String else {
return ""
}
return value
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.