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

如何从字典中获取字符串并确保其不为空?(Swift/iOS),ios,swift,Ios,Swift,如何从Swift中的键中获取字典中的值(也可以为空)?返回值不能为null(如果字典中没有此类值,则应将其填充为'''') 示例代码: func getValue(data:[String:AnyObject], key:String!) -> String! { guard let value:String! = data[key] else { return "" } return value } 上面的代码无法生成。请尝试此操作 func g

如何从Swift中的键中获取字典中的值(也可以为空)?返回值不能为null(如果字典中没有此类值,则应将其填充为'''')

示例代码:

func getValue(data:[String:AnyObject], key:String!) -> String! {
    guard let value:String! = data[key] else {
        return ""
    }
    return value
}
上面的代码无法生成。

请尝试此操作

func getValue(data:[String:AnyObject], key:String!) -> String! {
    guard let value:String! = data[key] 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
}
怎么样

func getValue(data:[String:Any], key:String) -> String {
    guard let value = data[key] as? String else {
        return ""
    }
    return value
}
如果键不存在或不是字符串,则返回空字符串

注意,我从
AnyObject
更改为
Any
,因为字符串不是对象

如果需要,也可以将
数据
设置为可选:

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:Any], key:String) -> String {
    guard let value = data[key] as? String else {
        return ""
    }
    return value
}
如果键不存在或不是字符串,则返回空字符串

注意,我从
AnyObject
更改为
Any
,因为字符串不是对象

如果需要,也可以将
数据
设置为可选:

func getValue(data:[String:Any]?, key:String?) -> String {
    guard let k = key, let value = data?[k] as? String else {
        return ""
    }
    return value
}
更容易:

return data [key] as? String ?? "";
(谢谢,Thilo)但是,当您知道方法“getValue”返回字符串时,为什么要调用它?方法名称应该表示该方法的功能。方法返回字典中的字符串或空字符串。叫它getStringOrEmpty怎么样

你也应该考虑字典中的JSON,这个值可以是NULL,它可以是一个数字,甚至可以是一个数组。你应该决定在这些情况下你想做什么。如果值不是字符串,我至少会添加一些调试代码

更容易:

return data [key] as? String ?? "";
(谢谢,Thilo)但是,当您知道方法“getValue”返回字符串时,为什么要调用它?方法名称应该表示该方法的功能。方法返回字典中的字符串或空字符串。叫它getStringOrEmpty怎么样

你也应该考虑字典中的JSON,这个值可以是NULL,它可以是一个数字,甚至可以是一个数组。你应该决定在这些情况下你想做什么。如果值不是字符串,我至少会添加一些调试代码