从Swift 3中的Dictionary <string,any =“”>中获取值

时间:2017-06-18 17:55:34

标签: ios swift dictionary

以下是一些代码:

class MapViewController: UIViewController {
    var dico:Dictionary<String, Any>?

    override func viewDidLoad() {
        super.viewDidLoad()
        let dest = "\(String(describing: self.dico?.index(forKey: "adresse"))) \(String(describing: self.dico?.index(forKey: "cp"))) \(String(describing: self.dico?.index(forKey: "ville")))"
        print(dest)}}

那个&#39; dico&#39;它来自一个赛格:

  

[&#34; cp&#34;:1000,&#34; id&#34;:4,&#34; loyer&#34;:,&#34; ville&#34;:bruxelles,&#34 ; nom&#34;:,&#34; ref&#34;:garage2,&#34; adresse&#34 ;:50 rue de spa,&#34; prenom&#34;:,&#34; nouveau_loyer&#34; :]

我希望得到&#39; dico&#39;的每个元素的价值。作为一个字符串,作为一个长字符串后重复使用它们(它是地理编码器的地址) 有谁知道 ?

使用上面的代码我遇到了这个错误:

  

可选(Swift.Dictionary.Index(_value:Swift.DictionaryIndexRepresentation._native(Swift._NativeDictionaryIndex(offset:13))))

1 个答案:

答案 0 :(得分:1)

尝试字符串插值可选链接条件转换 nil合并运算符 {{的组合1}}:

??

如果密钥let dest = "\(dico?["adresse"] as? String ?? "") \(dico?["cp"] as? String ?? "") \(dico?["ville"] as? String ?? "")" 的值实际上是"cp",那么请执行以下操作:

Int