下标(_ :)的歧义使用

问题描述 投票:0回答:1
func getCurrency()
    {

        let myLink:[String] = ["url1", "url2", "url3"]
        for link in myLink{
            let url = URL(string: link)
            let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
                if error != nil{
                    print("ERROR")
                }
                else{
                    if let content = data{
                        do{
                            if link == myLink[0]{
                                let myJson = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject

                                if let ratesusd = myJson["INR_USD"] as? Double{
                                    self.usdValue = ratesusd
                                }
                            }
                            else if link == myLink[1]{
                                let myJson = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject

                                if let rateseuro = myJson["INR_EUR"] as? Double{
                                    self.euroValue = rateseuro
                                }
                            }
                            else if link == myLink[2]{
                                let myJson = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject

                                if let ratespound = myJson["INR_GBP"] as? Double{
                                    self.poundValue = ratespound
                                }
                            }


                        }
                        catch{

                        }
                    }
                }
                }
                task.resume()



        }
    }

此错误会定期显示。我已将if let content = data{更改为if let content = data["content"] as? Double{,但显示了另一个错误,即“可选类型'数据的值?必须解包以引用已包装基本类型“数据”的成员“下标”。我在许多站点(包括stackoverflow)上都看到了一些相关的查询,但是它们是MacOS的,但是我正在使用WatchOS。任何人都可以帮助!

ios swift xcode apple-watch watchos
1个回答
0
投票

JSON对象是never未指定AnyObject。如果您希望字典将其转换为字典

let myJson = try JSONSerialization.jsonObject(with: content) as! [String:Any]

并且永远不要指定.mutableContainers。该选项在Swift中无效]

© www.soinside.com 2019 - 2024. All rights reserved.