繁体   English   中英

如何从字典中获取字符串并确保其不为null? (快速/ iOS)

[英]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因为字符串不是对象。

如果需要,您也可以将datakey设为可选:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM